{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Model_Selection)=\n",
    "# Model selection\n",
    "\n",
    "Model selection consists in selecting the prediction model that is expected to provide the best performances on future data. The standard methodology consists of four main steps {cite}`bontempi2021statistical,bishop2006pattern,friedman2001elements`:\n",
    "\n",
    "1. Define a collection of candidate models to be tested. Let $M$ be the number of models, and $h_k$, $1 \\le k \\le M$, be the $k-$th model in the collection, parameterized by a set of parameters $\\theta_k$ (also see section [Baseline methodology - Supervised learning](ML_For_CCFD_Baseline_Methodology)). Given a class of models (such as decision trees, logistic regression, ...), a common practice is to define a collection of models of increasing complexity (tree depth for decision trees, regularisation coefficients for logistic regression, ...).  \n",
    "2. Train each candidate model using the training data. The training of model $h_k$ identifies the parameters $\\theta_k$ that maximizes the performances of $h_k$ on the training set.\n",
    "3. Assess the performances of each candidate model by means of a validation procedure (see section [Validation Strategies](Validation_Strategies)). The validation procedure provides an estimate of the generalization performance. Let us denote by $A_{valid}(h_k(.,\\theta_k))$ the validation performance for the $k$-th model. \n",
    "4. Select the model that has the highest validation performance. Denoting by $k^*$ the index of this optimal model, we have:\n",
    "\n",
    "$$\n",
    "k^*= \\mathrm{arg\\ max}_{k \\in \\{1,2,...,M\\}} A_{valid(h_k(.,\\theta_k))}\n",
    "$$\n",
    "\n",
    "An illustration of the model selection procedure with its different steps is provided in Fig. 1. \n",
    "\n",
    "![alt text](images/model_selection.png)\n",
    "<div align=\"center\">Fig. 1. Model selection procedure: A set of models of increasing complexity are trained, and their performances are assessed using a validation procedure. The model that provides the best validation performance is selected.</div>\n",
    "\n",
    "The rationale for assessing models of increasing complexity is that there is usually a trade-off between the model complexity and its generalization performances (also referred to as the *bias/variance trade-off*) {cite}`bontempi2021statistical,bishop2006pattern,friedman2001elements`. Models that have too few parameters fail to properly represent the relationship between input and output features (also referred to as *underfitting*). Models that have many parameters can perfectly represent the relationship between input and output features in the training data (also referred to as *overfitting*). Training data are however often noisy, and their distribution slightly different from the validation and test data. As a result, overfitting is usually detrimental to the performances on the validation or test data. \n",
    "\n",
    "A qualitative representation of the trade-off between model complexity and performances is illustrated in Fig. 2. The training performances usually increase with the model complexity. The optimal validation and test performances are found for models of intermediate complexity, that both avoid underfitting and overfitting. This trade-off was experimentally illustrated with decision trees in the previous section on [Validation Strategies](Validation_Strategies).\n",
    "\n",
    "![alt text](images/model_selection_graph.png)\n",
    "<div align=\"center\">Fig. 2. Trade-off between model complexity and performances. The optimal validation and test performances are usually found for models of intermediate complexity, that both avoid underfitting and overfitting. </div>\n",
    "\n",
    "This section aims at refining the [sklearn validation pipeline](Sklearn_Validation_Pipeline), and exploring the trade-offs between model complexity and performances for different classes of models. \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n",
      "                                 Dload  Upload   Total   Spent    Left  Speed\n",
      "100 31568  100 31568    0     0  83513      0 --:--:-- --:--:-- --:--:-- 83513\n"
     ]
    }
   ],
   "source": [
    "# Initialization: Load shared functions and simulated data \n",
    "\n",
    "# Load shared functions\n",
    "!curl -O https://raw.githubusercontent.com/Fraud-Detection-Handbook/fraud-detection-handbook/main/Chapter_References/shared_functions.py\n",
    "%run shared_functions.py\n",
    "\n",
    "# Get simulated data from Github repository\n",
    "if not os.path.exists(\"simulated-data-transformed\"):\n",
    "    !git clone https://github.com/Fraud-Detection-Handbook/simulated-data-transformed\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Model_Selection_Decision_Tree)=\n",
    "## Model selection: Decision trees\n",
    "\n",
    "Let us first reproduce the [sklearn prequential validation pipeline](Sklearn_Validation_Pipeline) proposed in the previous section. We load three months of transaction data, and define the output feature as the fraud label `TX_FRAUD`, and the inputs features as the set of features obtained from the [baseline preprocessing](Baseline_Feature_Transformation).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Load  files\n",
      "CPU times: user 880 ms, sys: 545 ms, total: 1.43 s\n",
      "Wall time: 1.66 s\n",
      "919767 transactions loaded, containing 8195 fraudulent transactions\n"
     ]
    }
   ],
   "source": [
    "# Load data from the 2018-06-11 to the 2018-09-14\n",
    "\n",
    "DIR_INPUT = 'simulated-data-transformed/data/' \n",
    "\n",
    "BEGIN_DATE = \"2018-06-11\"\n",
    "END_DATE = \"2018-09-14\"\n",
    "\n",
    "print(\"Load  files\")\n",
    "%time transactions_df = read_from_files(DIR_INPUT, BEGIN_DATE, END_DATE)\n",
    "print(\"{0} transactions loaded, containing {1} fraudulent transactions\".format(len(transactions_df),transactions_df.TX_FRAUD.sum()))\n",
    "\n",
    "output_feature = \"TX_FRAUD\"\n",
    "\n",
    "input_features = ['TX_AMOUNT','TX_DURING_WEEKEND', 'TX_DURING_NIGHT', 'CUSTOMER_ID_NB_TX_1DAY_WINDOW',\n",
    "       'CUSTOMER_ID_AVG_AMOUNT_1DAY_WINDOW', 'CUSTOMER_ID_NB_TX_7DAY_WINDOW',\n",
    "       'CUSTOMER_ID_AVG_AMOUNT_7DAY_WINDOW', 'CUSTOMER_ID_NB_TX_30DAY_WINDOW',\n",
    "       'CUSTOMER_ID_AVG_AMOUNT_30DAY_WINDOW', 'TERMINAL_ID_NB_TX_1DAY_WINDOW',\n",
    "       'TERMINAL_ID_RISK_1DAY_WINDOW', 'TERMINAL_ID_NB_TX_7DAY_WINDOW',\n",
    "       'TERMINAL_ID_RISK_7DAY_WINDOW', 'TERMINAL_ID_NB_TX_30DAY_WINDOW',\n",
    "       'TERMINAL_ID_RISK_30DAY_WINDOW']\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The reference starting date for training is set at 2018-07-25, and the deltas to seven days (see [Validation Strategies](Validation_Strategies)). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "# Number of folds for the prequential validation\n",
    "n_folds = 4\n",
    "\n",
    "# Set the starting day for the training period, and the deltas\n",
    "start_date_training = datetime.datetime.strptime(\"2018-07-25\", \"%Y-%m-%d\")\n",
    "delta_train = delta_delay = delta_test = delta_valid = delta_assessment = 7\n",
    "\n",
    "start_date_training_for_valid = start_date_training+datetime.timedelta(days=-(delta_delay+delta_valid))\n",
    "start_date_training_for_test = start_date_training+datetime.timedelta(days=(n_folds-1)*delta_test)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The performance metrics are the AUC ROC, the Average Precision, and the Card Precision@100. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "# Only keep columns that are needed as argument to the custom scoring function\n",
    "# (in order to reduce the serialization time of transaction dataset)\n",
    "transactions_df_scorer = transactions_df[['CUSTOMER_ID', 'TX_FRAUD','TX_TIME_DAYS']]\n",
    "\n",
    "card_precision_top_100 = sklearn.metrics.make_scorer(card_precision_top_k_custom, \n",
    "                                                     needs_proba=True, \n",
    "                                                     top_k=100, \n",
    "                                                     transactions_df=transactions_df_scorer)\n",
    "\n",
    "performance_metrics_list_grid = ['roc_auc', 'average_precision', 'card_precision@100']\n",
    "performance_metrics_list = ['AUC ROC', 'Average precision', 'Card Precision@100']\n",
    "\n",
    "scoring = {'roc_auc':'roc_auc',\n",
    "           'average_precision': 'average_precision',\n",
    "           'card_precision@100': card_precision_top_100,\n",
    "           }\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For the sake of conciseness, let us define a `model_selection_wrapper` function, that will perform prequential validation for both the validation and the test sets. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "def model_selection_wrapper(transactions_df, \n",
    "                            classifier, \n",
    "                            input_features, output_feature,\n",
    "                            parameters, \n",
    "                            scoring, \n",
    "                            start_date_training_for_valid,\n",
    "                            start_date_training_for_test,\n",
    "                            n_folds=4,\n",
    "                            delta_train=7, \n",
    "                            delta_delay=7, \n",
    "                            delta_assessment=7,\n",
    "                            performance_metrics_list_grid=['roc_auc'],\n",
    "                            performance_metrics_list=['AUC ROC'],\n",
    "                            n_jobs=-1):\n",
    "\n",
    "    # Get performances on the validation set using prequential validation\n",
    "    performances_df_validation=prequential_grid_search(transactions_df, classifier, \n",
    "                            input_features, output_feature,\n",
    "                            parameters, scoring, \n",
    "                            start_date_training=start_date_training_for_valid,\n",
    "                            n_folds=n_folds,\n",
    "                            expe_type='Validation',\n",
    "                            delta_train=delta_train, \n",
    "                            delta_delay=delta_delay, \n",
    "                            delta_assessment=delta_assessment,\n",
    "                            performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                            performance_metrics_list=performance_metrics_list,\n",
    "                            n_jobs=n_jobs)\n",
    "    \n",
    "    # Get performances on the test set using prequential validation\n",
    "    performances_df_test=prequential_grid_search(transactions_df, classifier, \n",
    "                            input_features, output_feature,\n",
    "                            parameters, scoring, \n",
    "                            start_date_training=start_date_training_for_test,\n",
    "                            n_folds=n_folds,\n",
    "                            expe_type='Test',\n",
    "                            delta_train=delta_train, \n",
    "                            delta_delay=delta_delay, \n",
    "                            delta_assessment=delta_assessment,\n",
    "                            performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                            performance_metrics_list=performance_metrics_list,\n",
    "                            n_jobs=n_jobs)\n",
    "    \n",
    "    # Bind the two resulting DataFrames\n",
    "    performances_df_validation.drop(columns=['Parameters','Execution time'], inplace=True)\n",
    "    performances_df=pd.concat([performances_df_test,performances_df_validation],axis=1)\n",
    "\n",
    "    # And return as a single DataFrame\n",
    "    return performances_df\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Prequential validation can now be performed with the few following lines of code, by\n",
    "\n",
    "* defining which classifier to use\n",
    "* defining which parameters to test\n",
    "* fitting the models and assessing the performances\n",
    "\n",
    "The implementation using decision trees as predictions models, for maximum depth in $[2,3,4,5,6,7,8,9,10,20,50]$, is obtained with:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define classifier\n",
    "classifier = sklearn.tree.DecisionTreeClassifier()\n",
    "\n",
    "# Set of parameters for which to assess model performances\n",
    "parameters = {'clf__max_depth':[2,3,4,5,6,7,8,9,10,20,50], 'clf__random_state':[0]}\n",
    "\n",
    "start_time = time.time()\n",
    "\n",
    "# Fit models and assess performances for all parameters\n",
    "performances_df=model_selection_wrapper(transactions_df, classifier, \n",
    "                                        input_features, output_feature,\n",
    "                                        parameters, scoring, \n",
    "                                        start_date_training_for_valid,\n",
    "                                        start_date_training_for_test,\n",
    "                                        n_folds=n_folds,\n",
    "                                        delta_train=delta_train, \n",
    "                                        delta_delay=delta_delay, \n",
    "                                        delta_assessment=delta_assessment,\n",
    "                                        performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                                        performance_metrics_list=performance_metrics_list,\n",
    "                                        n_jobs=1)\n",
    "\n",
    "execution_time_dt = time.time()-start_time\n",
    "\n",
    "# Select parameter of interest (max_depth)\n",
    "parameters_dict=dict(performances_df['Parameters'])\n",
    "performances_df['Parameters summary']=[parameters_dict[i]['clf__max_depth'] for i in range(len(parameters_dict))]\n",
    "\n",
    "# Rename to performances_df_dt for model performance comparison at the end of this notebook\n",
    "performances_df_dt=performances_df\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC Test</th>\n",
       "      <th>AUC ROC Test Std</th>\n",
       "      <th>Average precision Test</th>\n",
       "      <th>Average precision Test Std</th>\n",
       "      <th>Card Precision@100 Test</th>\n",
       "      <th>Card Precision@100 Test Std</th>\n",
       "      <th>Parameters</th>\n",
       "      <th>Execution time</th>\n",
       "      <th>AUC ROC Validation</th>\n",
       "      <th>AUC ROC Validation Std</th>\n",
       "      <th>Average precision Validation</th>\n",
       "      <th>Average precision Validation Std</th>\n",
       "      <th>Card Precision@100 Validation</th>\n",
       "      <th>Card Precision@100 Validation Std</th>\n",
       "      <th>Parameters summary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.791909</td>\n",
       "      <td>0.017769</td>\n",
       "      <td>0.541761</td>\n",
       "      <td>0.031476</td>\n",
       "      <td>0.265000</td>\n",
       "      <td>0.019756</td>\n",
       "      <td>{'clf__max_depth': 2, 'clf__random_state': 0}</td>\n",
       "      <td>0.383720</td>\n",
       "      <td>0.790786</td>\n",
       "      <td>0.012035</td>\n",
       "      <td>0.549767</td>\n",
       "      <td>0.022134</td>\n",
       "      <td>0.256429</td>\n",
       "      <td>0.014481</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.809012</td>\n",
       "      <td>0.009125</td>\n",
       "      <td>0.578885</td>\n",
       "      <td>0.014434</td>\n",
       "      <td>0.281429</td>\n",
       "      <td>0.015940</td>\n",
       "      <td>{'clf__max_depth': 3, 'clf__random_state': 0}</td>\n",
       "      <td>0.425149</td>\n",
       "      <td>0.802717</td>\n",
       "      <td>0.017607</td>\n",
       "      <td>0.573414</td>\n",
       "      <td>0.027186</td>\n",
       "      <td>0.267143</td>\n",
       "      <td>0.016067</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.812555</td>\n",
       "      <td>0.010319</td>\n",
       "      <td>0.601088</td>\n",
       "      <td>0.020216</td>\n",
       "      <td>0.282500</td>\n",
       "      <td>0.015199</td>\n",
       "      <td>{'clf__max_depth': 4, 'clf__random_state': 0}</td>\n",
       "      <td>0.467093</td>\n",
       "      <td>0.800690</td>\n",
       "      <td>0.017878</td>\n",
       "      <td>0.554134</td>\n",
       "      <td>0.038293</td>\n",
       "      <td>0.264286</td>\n",
       "      <td>0.014321</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.810138</td>\n",
       "      <td>0.008586</td>\n",
       "      <td>0.600306</td>\n",
       "      <td>0.016797</td>\n",
       "      <td>0.284286</td>\n",
       "      <td>0.004286</td>\n",
       "      <td>{'clf__max_depth': 5, 'clf__random_state': 0}</td>\n",
       "      <td>0.510538</td>\n",
       "      <td>0.804218</td>\n",
       "      <td>0.016505</td>\n",
       "      <td>0.546094</td>\n",
       "      <td>0.042197</td>\n",
       "      <td>0.267857</td>\n",
       "      <td>0.013869</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.804437</td>\n",
       "      <td>0.007974</td>\n",
       "      <td>0.585132</td>\n",
       "      <td>0.005053</td>\n",
       "      <td>0.281429</td>\n",
       "      <td>0.007626</td>\n",
       "      <td>{'clf__max_depth': 6, 'clf__random_state': 0}</td>\n",
       "      <td>0.600303</td>\n",
       "      <td>0.798603</td>\n",
       "      <td>0.024225</td>\n",
       "      <td>0.537006</td>\n",
       "      <td>0.037056</td>\n",
       "      <td>0.264643</td>\n",
       "      <td>0.008474</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.782710</td>\n",
       "      <td>0.012483</td>\n",
       "      <td>0.554860</td>\n",
       "      <td>0.011771</td>\n",
       "      <td>0.268929</td>\n",
       "      <td>0.009813</td>\n",
       "      <td>{'clf__max_depth': 7, 'clf__random_state': 0}</td>\n",
       "      <td>0.664072</td>\n",
       "      <td>0.795636</td>\n",
       "      <td>0.023144</td>\n",
       "      <td>0.530609</td>\n",
       "      <td>0.040323</td>\n",
       "      <td>0.262500</td>\n",
       "      <td>0.006804</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.774783</td>\n",
       "      <td>0.014568</td>\n",
       "      <td>0.544933</td>\n",
       "      <td>0.003392</td>\n",
       "      <td>0.263571</td>\n",
       "      <td>0.007593</td>\n",
       "      <td>{'clf__max_depth': 8, 'clf__random_state': 0}</td>\n",
       "      <td>0.792020</td>\n",
       "      <td>0.795142</td>\n",
       "      <td>0.023081</td>\n",
       "      <td>0.516246</td>\n",
       "      <td>0.033545</td>\n",
       "      <td>0.260714</td>\n",
       "      <td>0.009715</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.761763</td>\n",
       "      <td>0.012098</td>\n",
       "      <td>0.520208</td>\n",
       "      <td>0.012309</td>\n",
       "      <td>0.258571</td>\n",
       "      <td>0.009949</td>\n",
       "      <td>{'clf__max_depth': 9, 'clf__random_state': 0}</td>\n",
       "      <td>0.719332</td>\n",
       "      <td>0.785849</td>\n",
       "      <td>0.026249</td>\n",
       "      <td>0.505189</td>\n",
       "      <td>0.040393</td>\n",
       "      <td>0.260357</td>\n",
       "      <td>0.009813</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.758138</td>\n",
       "      <td>0.011140</td>\n",
       "      <td>0.504909</td>\n",
       "      <td>0.013154</td>\n",
       "      <td>0.257500</td>\n",
       "      <td>0.010467</td>\n",
       "      <td>{'clf__max_depth': 10, 'clf__random_state': 0}</td>\n",
       "      <td>0.765691</td>\n",
       "      <td>0.786784</td>\n",
       "      <td>0.031165</td>\n",
       "      <td>0.493543</td>\n",
       "      <td>0.048307</td>\n",
       "      <td>0.257143</td>\n",
       "      <td>0.009949</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.754024</td>\n",
       "      <td>0.009848</td>\n",
       "      <td>0.439422</td>\n",
       "      <td>0.034828</td>\n",
       "      <td>0.261071</td>\n",
       "      <td>0.014335</td>\n",
       "      <td>{'clf__max_depth': 20, 'clf__random_state': 0}</td>\n",
       "      <td>1.195464</td>\n",
       "      <td>0.780408</td>\n",
       "      <td>0.022168</td>\n",
       "      <td>0.450980</td>\n",
       "      <td>0.031413</td>\n",
       "      <td>0.264286</td>\n",
       "      <td>0.007890</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.797225</td>\n",
       "      <td>0.005427</td>\n",
       "      <td>0.334457</td>\n",
       "      <td>0.020767</td>\n",
       "      <td>0.257857</td>\n",
       "      <td>0.011715</td>\n",
       "      <td>{'clf__max_depth': 50, 'clf__random_state': 0}</td>\n",
       "      <td>1.400485</td>\n",
       "      <td>0.822564</td>\n",
       "      <td>0.013407</td>\n",
       "      <td>0.341818</td>\n",
       "      <td>0.026227</td>\n",
       "      <td>0.265714</td>\n",
       "      <td>0.008512</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    AUC ROC Test  AUC ROC Test Std  Average precision Test  \\\n",
       "0       0.791909          0.017769                0.541761   \n",
       "1       0.809012          0.009125                0.578885   \n",
       "2       0.812555          0.010319                0.601088   \n",
       "3       0.810138          0.008586                0.600306   \n",
       "4       0.804437          0.007974                0.585132   \n",
       "5       0.782710          0.012483                0.554860   \n",
       "6       0.774783          0.014568                0.544933   \n",
       "7       0.761763          0.012098                0.520208   \n",
       "8       0.758138          0.011140                0.504909   \n",
       "9       0.754024          0.009848                0.439422   \n",
       "10      0.797225          0.005427                0.334457   \n",
       "\n",
       "    Average precision Test Std  Card Precision@100 Test  \\\n",
       "0                     0.031476                 0.265000   \n",
       "1                     0.014434                 0.281429   \n",
       "2                     0.020216                 0.282500   \n",
       "3                     0.016797                 0.284286   \n",
       "4                     0.005053                 0.281429   \n",
       "5                     0.011771                 0.268929   \n",
       "6                     0.003392                 0.263571   \n",
       "7                     0.012309                 0.258571   \n",
       "8                     0.013154                 0.257500   \n",
       "9                     0.034828                 0.261071   \n",
       "10                    0.020767                 0.257857   \n",
       "\n",
       "    Card Precision@100 Test Std  \\\n",
       "0                      0.019756   \n",
       "1                      0.015940   \n",
       "2                      0.015199   \n",
       "3                      0.004286   \n",
       "4                      0.007626   \n",
       "5                      0.009813   \n",
       "6                      0.007593   \n",
       "7                      0.009949   \n",
       "8                      0.010467   \n",
       "9                      0.014335   \n",
       "10                     0.011715   \n",
       "\n",
       "                                        Parameters  Execution time  \\\n",
       "0    {'clf__max_depth': 2, 'clf__random_state': 0}        0.383720   \n",
       "1    {'clf__max_depth': 3, 'clf__random_state': 0}        0.425149   \n",
       "2    {'clf__max_depth': 4, 'clf__random_state': 0}        0.467093   \n",
       "3    {'clf__max_depth': 5, 'clf__random_state': 0}        0.510538   \n",
       "4    {'clf__max_depth': 6, 'clf__random_state': 0}        0.600303   \n",
       "5    {'clf__max_depth': 7, 'clf__random_state': 0}        0.664072   \n",
       "6    {'clf__max_depth': 8, 'clf__random_state': 0}        0.792020   \n",
       "7    {'clf__max_depth': 9, 'clf__random_state': 0}        0.719332   \n",
       "8   {'clf__max_depth': 10, 'clf__random_state': 0}        0.765691   \n",
       "9   {'clf__max_depth': 20, 'clf__random_state': 0}        1.195464   \n",
       "10  {'clf__max_depth': 50, 'clf__random_state': 0}        1.400485   \n",
       "\n",
       "    AUC ROC Validation  AUC ROC Validation Std  Average precision Validation  \\\n",
       "0             0.790786                0.012035                      0.549767   \n",
       "1             0.802717                0.017607                      0.573414   \n",
       "2             0.800690                0.017878                      0.554134   \n",
       "3             0.804218                0.016505                      0.546094   \n",
       "4             0.798603                0.024225                      0.537006   \n",
       "5             0.795636                0.023144                      0.530609   \n",
       "6             0.795142                0.023081                      0.516246   \n",
       "7             0.785849                0.026249                      0.505189   \n",
       "8             0.786784                0.031165                      0.493543   \n",
       "9             0.780408                0.022168                      0.450980   \n",
       "10            0.822564                0.013407                      0.341818   \n",
       "\n",
       "    Average precision Validation Std  Card Precision@100 Validation  \\\n",
       "0                           0.022134                       0.256429   \n",
       "1                           0.027186                       0.267143   \n",
       "2                           0.038293                       0.264286   \n",
       "3                           0.042197                       0.267857   \n",
       "4                           0.037056                       0.264643   \n",
       "5                           0.040323                       0.262500   \n",
       "6                           0.033545                       0.260714   \n",
       "7                           0.040393                       0.260357   \n",
       "8                           0.048307                       0.257143   \n",
       "9                           0.031413                       0.264286   \n",
       "10                          0.026227                       0.265714   \n",
       "\n",
       "    Card Precision@100 Validation Std  Parameters summary  \n",
       "0                            0.014481                   2  \n",
       "1                            0.016067                   3  \n",
       "2                            0.014321                   4  \n",
       "3                            0.013869                   5  \n",
       "4                            0.008474                   6  \n",
       "5                            0.006804                   7  \n",
       "6                            0.009715                   8  \n",
       "7                            0.009813                   9  \n",
       "8                            0.009949                  10  \n",
       "9                            0.007890                  20  \n",
       "10                           0.008512                  50  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "performances_df_dt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The resulting DataFrame provides the performances in terms of AUC ROC, AP, and CP@100 for both the validation and test sets. Rows correspond to performances for a given maximum depth of a decision tree. \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us extract from this table the most relevant information, that is, entries that allow to answer the following questions:\n",
    "\n",
    "1. Which parameter provides the best performances on the validation set? \n",
    "2. What is the performances on the test set using this parameter?\n",
    "3. What parameter would have provided the best performance on the test set?\n",
    "\n",
    "Answers to these questions can be organized as a table, using the `get_summary_performances` function.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "def get_summary_performances(performances_df, parameter_column_name=\"Parameters summary\"):\n",
    "\n",
    "    # Three performance metrics\n",
    "    metrics = ['AUC ROC','Average precision','Card Precision@100']\n",
    "    performances_results=pd.DataFrame(columns=metrics)\n",
    "    \n",
    "    # Reset indices in case a subset of a performane DataFrame is provided as input\n",
    "    performances_df.reset_index(drop=True,inplace=True)\n",
    "\n",
    "    # Lists of parameters/performances that will be retrieved for the best estimated parameters\n",
    "    best_estimated_parameters = []\n",
    "    validation_performance = []\n",
    "    test_performance = []\n",
    "    \n",
    "    # For each performance metric, get the validation and test performance for the best estimated parameter\n",
    "    for metric in metrics:\n",
    "    \n",
    "        # Find the index which provides the best validation performance\n",
    "        index_best_validation_performance = performances_df.index[np.argmax(performances_df[metric+' Validation'].values)]\n",
    "    \n",
    "        # Retrieve the corresponding parameters\n",
    "        best_estimated_parameters.append(performances_df[parameter_column_name].iloc[index_best_validation_performance])\n",
    "        \n",
    "        # Add validation performance to the validation_performance list (mean+/-std)\n",
    "        validation_performance.append(\n",
    "                str(round(performances_df[metric+' Validation'].iloc[index_best_validation_performance],3))+\n",
    "                '+/-'+\n",
    "                str(round(performances_df[metric+' Validation'+' Std'].iloc[index_best_validation_performance],2))\n",
    "        )\n",
    "        \n",
    "        # Add test performance to the test_performance list (mean+/-std)\n",
    "        test_performance.append(\n",
    "                str(round(performances_df[metric+' Test'].iloc[index_best_validation_performance],3))+\n",
    "                '+/-'+\n",
    "                str(round(performances_df[metric+' Test'+' Std'].iloc[index_best_validation_performance],2))\n",
    "        )\n",
    "    \n",
    "    # Add results to the performances_results DataFrame\n",
    "    performances_results.loc[\"Best estimated parameters\"]=best_estimated_parameters\n",
    "    performances_results.loc[\"Validation performance\"]=validation_performance\n",
    "    performances_results.loc[\"Test performance\"]=test_performance\n",
    "\n",
    "    # Lists of parameters/performances that will be retrieved for the optimal parameters\n",
    "    optimal_test_performance = []\n",
    "    optimal_parameters = []\n",
    "\n",
    "    # For each performance metric, get the performance for the optimal parameter\n",
    "    for metric in ['AUC ROC Test','Average precision Test','Card Precision@100 Test']:\n",
    "    \n",
    "        # Find the index which provides the optimal performance\n",
    "        index_optimal_test_performance = performances_df.index[np.argmax(performances_df[metric].values)]\n",
    "    \n",
    "        # Retrieve the corresponding parameters\n",
    "        optimal_parameters.append(performances_df[parameter_column_name].iloc[index_optimal_test_performance])\n",
    "    \n",
    "        # Add test performance to the test_performance list (mean+/-std)\n",
    "        optimal_test_performance.append(\n",
    "                str(round(performances_df[metric].iloc[index_optimal_test_performance],3))+\n",
    "                '+/-'+\n",
    "                str(round(performances_df[metric+' Std'].iloc[index_optimal_test_performance],2))\n",
    "        )\n",
    "\n",
    "    # Add results to the performances_results DataFrame\n",
    "    performances_results.loc[\"Optimal parameters\"]=optimal_parameters\n",
    "    performances_results.loc[\"Optimal test performance\"]=optimal_test_performance\n",
    "    \n",
    "    return performances_results\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC</th>\n",
       "      <th>Average precision</th>\n",
       "      <th>Card Precision@100</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Best estimated parameters</th>\n",
       "      <td>50</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Validation performance</th>\n",
       "      <td>0.823+/-0.01</td>\n",
       "      <td>0.573+/-0.03</td>\n",
       "      <td>0.268+/-0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Test performance</th>\n",
       "      <td>0.797+/-0.01</td>\n",
       "      <td>0.579+/-0.01</td>\n",
       "      <td>0.284+/-0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal parameters</th>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal test performance</th>\n",
       "      <td>0.813+/-0.01</td>\n",
       "      <td>0.601+/-0.02</td>\n",
       "      <td>0.284+/-0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                AUC ROC Average precision Card Precision@100\n",
       "Best estimated parameters            50                 3                  5\n",
       "Validation performance     0.823+/-0.01      0.573+/-0.03       0.268+/-0.01\n",
       "Test performance           0.797+/-0.01      0.579+/-0.01        0.284+/-0.0\n",
       "Optimal parameters                    4                 4                  5\n",
       "Optimal test performance   0.813+/-0.01      0.601+/-0.02        0.284+/-0.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summary_performances_dt=get_summary_performances(performances_df_dt, parameter_column_name=\"Parameters summary\")\n",
    "summary_performances_dt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The first row provides the parameters that maximize the performances on the validation set (best estimated parameters $k^*$). The second and third rows provide the corresponding performances on the validation and test sets, respectively. The fourth row provides the actual optimal parameters on the test set (the parameters that maximize the performances on the test set). The fifth row provides the corresponding performances on the test set.\n",
    "\n",
    "Two important observations can be made from this summary table. First, the optimal parameter depends on the performance metrics: It is a maximum depth of 4 for AUC ROC and AP, while it is a maximum depth of 5 for the CP@100. Second, the best parameters for the validation may not be the optimal parameter for the test set. This is the case for the AUC ROC (maximum depth of 50 for the validation set versus 4 for the test set), and the AP (maximum depth of 3 for the validation set versus 4 for the test set). \n",
    "\n",
    "Similar to the section [Validation Strategies](Validation_Strategies), let us plot the performances as a function of the decision tree depth. The vertical dashed line is the tree depth for which the performance is maximized on the validation data.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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4rEIISpHUe1QWloamzZtyjffbtWqVaSlpQHw7LPPkpGRweeff87777/P3r178w3VPH78OA6Hg0WLFtG/f38++OADVq9ezTvvvMOqVavo378/EyZM4Pjx4wBMmDCBjRs38uGHH/Lmm2/y4YcfEgwGw9cr6fXOtnPnTrZv386cOXN47LHHmDBhAt9//314/9KlS/nzn//MBx98QMuWLYu9/unTp7n33ntp3rw5ixYt4oknnmDcuHEFhkfu3LmTV155hTFjxrBq1Sr69OnD448/TnZ2doH4HnnkEf773//y3nvv8cknn7B37958wyHT09NZuXIlM2bM4OWXX+abb74p18NYIc5XBw4cwOVy0bZt20L3X3PNNdjtdpRSPPzwwzRu3JglS5YwZ84cDMPg1VdfDR97dnuVO/Vt4sSJzJw5M9yhUFrBYJCffvqJZcuW0b179/D2mtzunD59mq+//prHHnsMl8vFsGHDqF+/PvPnzyclJYUxY8aQnJyMrusMGTKE1atXh6/76KOP8qc//anQe8mTJ0/SsGHDfNvq1asX/rfhxIkTxe4XoqyKn3AhzgvHjx/n559/5rXXXgPgxhtv5KOPPuL777+nZ8+epb5OTk4OdevWLVcMJ06coGPHjuGvPR4PzZs358033wxvz8rKol69ekVeo06dOmRkZJxzLEKIyldSO9S8eXO+/fZb7rrrLg4ePMh///tfpk6dyoEDB/j2229Zv349cXFxAEyePJnu3btz9OjR8PUffPBBmjZtCkBSUhIvv/wyHTp0AGDEiBFMnTqVvXv3Ehsby+LFi3nvvffCbc/zzz/Pgw8+CFDi6yUkJBT6/iZPnkz9+vVJSkrip59+Yu7cuXTt2hWAK664gl69epXq+qtXryYmJoYXX3wRk8lE8+bNyczMxDCMfK93+PBhAC6++GIuvvhiHnroIdq2bYvFYsl33K5du/jpp59YuXIlLVq0AEIjCG6++eZwL1sgEODZZ58lOTmZyy+/nNTUVLZt21aG764Q57fcRLJWrVrFHud2u7n99tsZOnQoMTExAPTv35/3338/33F526t58+YxbNgwbrjhBiA0Kq9v377Fvs5HH33Ep59+CoDX68VkMnHLLbfwwAMPhI+pye3O999/T7du3bDb7UydOhVd1xk/fjy6rnPZZZcxb948WrVqBUDz5s3z/VtQHLfbHe71z2W1WvH5fEDo3rS4/UKUlSTaF4CVK1diMpnCN33t27enYcOGLF68mJ49e2I2m1FKFXquYRjhAhjx8fGFPrUsjfr16/P555+jlGLbtm1MmDCBQYMGcfPNN4ePqVOnDqdOnSryGidOnCA+Pv6cYxFCVL6S2qE+ffqEE+1Vq1bRsWNHEhISWLNmDUqp8E1oXvv27QuParn44ovD23v27Mm6deuYNGkSv/32W7g4omEY/Pbbb/j9/nw9U3kfAu7Zs6fY1yss0b7kkkuoX79++Os2bdrw2Wefhb/OWxyopOv/+uuvXH755fl6Y+6++26AfFWIr7/+ejp16sRtt91GUlIS3bt35/bbb8dut+e75m+//UZMTEz4ZhdCN6Z16tRhz5494TY196YfIDY2tsQKw0JcSHJ/T7Kysoo9Ljo6mqFDh7JkyRK2b98ebn9yk9tcedurPXv2MGLEiPDXSUlJBYann23QoEHce++9AFgsFurXr18gQazJ7c6ePXto2bIlACtWrGDQoEH5RjDabDauuOIKABwOR4HXL0pUVFSBpNnn82Gz2Uq1X4iykkT7ApA7PPPqq68ObzMMg7Vr13L69Glq165d6PxDpRQ5OTnUrl0bgLZt2zJjxgyUUmialu/YtWvXsmTJEl599dUCTzYBdF0nMTERCA3t1nWdJ598koSEBHr37g1Ahw4dmDFjBj6fr8A/GEopduzYwbXXXnvOsQghKl9J7VBaWhrTp08nIyODVatWMWDAACA0LDI6OprFixcXuGaDBg3CPSB5b0zffPNN5s6dy8CBA7n11lt58cUXw0Mqcx8c5n24mPfvJb1eYc6uxhsMBvPdFOZtz0q6fu58x5LY7XY++eQTNm7cyJo1a1i1ahWfffYZn3/+ObGxsYW+9tkx5u2tOrutLOrhqxAXoqZNmxIXF8e2bdto165dgf2PP/44t9xyC507d+b222+nTp069OzZk1tuuYXffvutQDXwsxPps3/fippCl6t27drhe6qi1OR2Jzs7O/yg4MCBA1x22WXhYxwOBwcPHqR169YA/Pjjj7Rv375U8Tdq1IiTJ0/m23bq1Klw296oUaMCHT559wtRVjJH+zy3b98+tm/fzpgxY1i8eHH4z/vvv4/f72fFihUkJyezb9++8LDsXLt27cLj8YSfGt500004HA6WLFmS7zjDMPjoo4/IzMwsdWKblpbGDTfcwPjx48NJft++ffH5fMyePbvA8StXruS3334LF0eKZCxCiIpVmnaoWbNmJCUlMX/+fHbt2hV+ANesWTNcLhfBYJDExMTwzeUrr7xSZIGyOXPm8PzzzzNq1CjS0tJwu91A6CauadOmWCwWduzYET5++/bt4b+X5/UOHjyYb9/27dtJTk4u9NiSrp+YmMju3bvz3YyOGTOGt99+O991Nm3axLRp07jyyisZNWoUX331FfXr1+eHH37Id1zz5s1xOp3s2bMnvO3XX3/F4XBILQshSslkMpGWlsZnn31WoMdz/fr1fPXVV8THx/PTTz9x7NgxZs+ezYMPPsi1117LkSNHin1w1bJly3xTNfbv34/L5Ypo/DWt3YmLiwsnxDExMfmS348//hhN07jsssvIyclh6tSpDBs2rFSfQ/v27dm0aVP4+6GUYtOmTeFpRu3bt2fjxo3h448ePcqRI0fC+4UoK0m0z3PLly+ndu3aDBkyhKSkpPCfrl270rFjRxYtWkRKSgrJyck89thj/Oc//+HgwYN8//33jBo1ir59+9KoUSMALrroIv7yl78wduxYPv74Y/bt28e2bdt44okn2LFjR5nXkXzuuefIzs7mnXfeAUIFJ8aPH89bb73F22+/zZ49e9i/fz8zZ87kueee44knngjfvEY6FiFExSlNOwSEe7Wvuuqq8FDsFi1akJqaytNPP82WLVvYtWsXo0ePJj09vUDRmlxxcXGsWbOGgwcPsnHjxnABHp/PR0xMDAMGDOCVV15h8+bNbN68mZdffhkIVaAtz+u53W5eeOEF9uzZw7x581i1ahV33XVXoceWdP1+/frhdDqZOHEie/fuZfny5SxfvpzU1NR817HZbEybNo05c+Zw6NAhVq9ezdGjR2nTpk2+45o3b84NN9zA6NGj2bp1K1u3bg1XHs59iCqEKNkjjzyC1+vlvvvuY/369Rw4cIBFixbx+OOPM2DAADp16kRcXBxut5tvv/2WQ4cOMX/+fD7//PNi5/jeddddfPbZZ3z11Vf88ssvPP/884UWej0XNa3dadWqFf/+978B6N27N9OmTWP16tW8+eabfPTRR1gsFn744QeGDRvG9ddfXyDOotx00024XC7++te/8uuvv4YfNPTp0weAIUOGsHz5cubNm8fu3bsZPXo0Xbp04dJLLy3V9YUooHJXExOV7aabblLjxo0rdN/ixYtVUlKS2r17tzp9+rR69tln1fXXX69at26tbrjhBvXGG28or9db4Lxly5apQYMGqZSUFHX11VerESNGqN27dxcZQ3HraL/55puqVatW+c7/+eef1YMPPqiuuuoqlZKSou6++261evXqQs8vayxCiMpX2nboyJEjKjk5Obymaa709HT15JNPqpSUFNWpUyf16KOPqhMnTiillFq/fr1KSkpSfr8/fPzPP/+sbrnlFtW2bVvVo0cP9f7776s77rhDvfvuu0oppRwOh3rqqadUhw4d1PXXX6/ee+89lZSUFF6LtbjXO9uXX36prr/+evX666+rDh06qF69eqkVK1aE948ePTrfuqyluf7mzZvVoEGDVJs2bdSNN96oli5dWuh7XbJkibrppptUmzZtVPfu3dVnn32mlFLq4MGD+dZ+zcjIUE8++aTq2LGjuvLKK9Xo0aNVZmZmkZ9fYTELIZQ6duyYGjt2rOrSpYtq27atuvnmm9VHH32kfD5f+JgpU6aoa665RnXs2FENHjxYffnllyopKUkdPny40N83pZSaOXOmuu6669SVV16pPvzwQ9WpU6cyr6OdV01vdxwOh7rqqqvUli1bVGZmpho+fLhq166devzxx9X69evVVVddpa677jo1ffp0FQwG1W+//aacTme+93t2PLm2bNmibrvtNtWmTRs1cOBAtW3btnz7Fy5cqLp166Y6dOigHn74YZWenl7sZy1EcTSlZCKWEEKIC8d3331H586dw1WBt27dytChQ9m0aVOZp5wsXLiQt956q8DQSSGEEOU3b948pk2bxowZM8JrlJ8tGAzy+uuvs3r1ahYtWkR0dHQlRylE8aQYmhBCiAvKu+++y+rVq3nooYdwOp289tprdO/eXeo6CCFENXHHHXeQnZ3NoEGDSEtLo3v37lx66aVER0dz+vRpNm3axLx587BYLMycOVOSbFEtSY+2EEKIC8qvv/7KX//6V7Zu3YrVaqV79+48++yzJa6RWxjp0RZCiIqzZ88e/v73v7NhwwYOHz6M1+ulTp06XHHFFfTp04d+/frJQ1JRbUmiLYQQQgghhBBCRJBUHRdCCCGEEEIIISJIEm0hhBBCCCGEECKCJNEWQgghhBBCCCEiSBJtIYQQQgghhBAigiTRFkIIIYQQQgghIkgSbSGEEEIIIYQQIoIk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eS4/JM+JYiaFdh+1YMECGhoaaGho4LHHHuNnP/sZb7/9NkopLr30Ur75zW+yZcsWFi1aBEBZWRl333034XA4+xwPPfQQn3zyCfv376exsZFZs2bxyiuvsHXrVpYsWcK4ceP48Y9/zKZNm4hGo4waNYp77rmHJUuWYFkW119/PZdddhmXXXYZf/nLX6iqqmLkyJEsXboUy7L47LPPmDlzJm+++SabN29mzpw5zJo1izPOOIOXXnoJr9fLfffdx8iRIxk8eHCnj2vr/vvv57//+78ZOHAg+/fvB6C5uZlbbrkle/vWW2/luOOO48wzz+Skk05i27ZtjB49mh/+8Ic8+uijbN68mRUrVgCwYsUKfvaznxGJRFi4cCEnnnhib/w1CiE6IHlO8pwQ/Z3kOclzoh9Tok9YvXq1uvfee7O358+fr37xi18opZT6/e9/r66//nqllFKJREJNmTJFNTY2qmnTpqkPP/xQKaXUypUr1b//+7+3e86f/OQn6pZbblFKKfXYY4+p6667Timl1KpVq9SiRYtUc3OzWrp0qVJKKcdx1Lnnnqs+++wzlUql1LRp09SNN96o7rvvvuxzPf300+rNN99UkyZNUqlUSr377rtqwoQJKplMqm3btqkpU6YopZT6xje+oRKJhFJKqXvvvVetXr26S49rtWXLFnXRRRcpx3FUc3OzOuWUU9T27dvVj370I/XUU08ppZTaunWrmjlzplJKqRNOOEF9/PHHSimlrrvuOvXyyy+rN998M/szmz9/vvrpT3+a/Tn/4Ac/6PHfkxCi5yTPfU7ynBD9k+S5z0meE/2drGj3YSNGjADggw8+4L333mP27NkA2LbNzp07+dvf/sYdd9wBQDqdzt6/reOPPx6AcDjMscceC0BpaSnJZBKv10t9fT3z5s0jEAgQi8VIp9NYlsUll1zC/PnzWb9+/UHPOXr0aCzLIhwOM2zYMDweT/Y5D6SU6vbjPvroI8aOHYuu64RCIcaMGZP9Obz55pu89NJLADQ1NQFQW1vL8OHDAfjSl77E1q1bGTduXLvnPOGEEwCoqqoikUgc/ocuhOhVkuckzwnR30mekzwn+icptPswTdMAGDlyJF/96le56667cF2Xhx9+mCFDhjBixAiWLFnCoEGDeOedd6irqzvscxzKhg0b2LVrFw888AD19fX89re/RSlFY2Mjjz76KAsWLOC2227j0Ucf7fJzAng8Hvbs2cOQIUPYvHkzo0aN6tLjWo0YMYJly5bhui6JRIKPPvoo+3OYMmUKkydPZt++fTz33HMA7N69m7q6Oqqrq/nTn/7E1KlT0XUd13W7HLMQojAkz0meE6K/kzwneU70T1Jo9wNnnHEG//u//8usWbOIxWKcddZZhEIhFi5cyPz583EcB4Af/vCH3XreE088kYcffpjp06fj8XgYOnQoe/bsYcmSJVx55ZVMnTqVTZs2sWzZsm4975VXXsl3v/tdBg8eTElJSbceC/CFL3yBc889lwsvvJCamhoqKysBmDt3LrfccgsrV64kEolw7bXXAplfBHfddRe7du3ipJNO4owzzmDPnj188MEHPPHEE93++kKI3id5TvKcEP2d5DnJc6J/0VTbvR5C9EOnnnoqr7/+eqHDEEKIvJE8J4To7yTPib5G5mgLIYQQQgghhBA5JCvaQgghhBBCCCFEDsmKthBCCCGEEEIIkUNSaAshhBBCCCGEEDkkhbYQQgghhBBCCJFDUmgLIYQQQgghhBA5JIW2EEIIIYQQQgiRQ1JoCyGEEEIIIYQQOfR/AVPNtieFEueCAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_performances_plots(performances_df_dt, \n",
    "                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'], \n",
    "                       expe_type_list=['Test','Validation'], expe_type_color_list=['#008000','#FF0000'],\n",
    "                       summary_performances=summary_performances_dt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model selection: Exploration of other model classes\n",
    "\n",
    "This section explores the performances that can be achieved with model selection using other model classes. We cover logistic regression, random forests, and boosting (as in the section [Baseline Fraud Detection System](Baseline_FDS)).\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Model_Selection_Logistic_Regression)=\n",
    "### Logistic regression\n",
    "\n",
    "The main hyperparameter of logistic regression is the [regularization parameter C](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression). The [default value for this parameter is 1](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression). Let us try fitting models with lower and higher values, for example in the set [0.1,1,10,100].   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "classifier = sklearn.linear_model.LogisticRegression()\n",
    "\n",
    "parameters = {'clf__C':[0.1,1,10,100], 'clf__random_state':[0]}\n",
    "\n",
    "start_time=time.time()\n",
    "\n",
    "performances_df=model_selection_wrapper(transactions_df, classifier, \n",
    "                                        input_features, output_feature,\n",
    "                                        parameters, scoring, \n",
    "                                        start_date_training_for_valid,\n",
    "                                        start_date_training_for_test,\n",
    "                                        n_folds=n_folds,\n",
    "                                        delta_train=delta_train, \n",
    "                                        delta_delay=delta_delay, \n",
    "                                        delta_assessment=delta_assessment,\n",
    "                                        performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                                        performance_metrics_list=performance_metrics_list,\n",
    "                                        n_jobs=1)\n",
    "\n",
    "execution_time_lr = time.time()-start_time\n",
    "\n",
    "parameters_dict=dict(performances_df['Parameters'])\n",
    "performances_df['Parameters summary']=[parameters_dict[i]['clf__C'] for i in range(len(parameters_dict))]\n",
    "\n",
    "# Rename to performances_df_lr for model performance comparison at the end of this notebook\n",
    "performances_df_lr=performances_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC Test</th>\n",
       "      <th>AUC ROC Test Std</th>\n",
       "      <th>Average precision Test</th>\n",
       "      <th>Average precision Test Std</th>\n",
       "      <th>Card Precision@100 Test</th>\n",
       "      <th>Card Precision@100 Test Std</th>\n",
       "      <th>Parameters</th>\n",
       "      <th>Execution time</th>\n",
       "      <th>AUC ROC Validation</th>\n",
       "      <th>AUC ROC Validation Std</th>\n",
       "      <th>Average precision Validation</th>\n",
       "      <th>Average precision Validation Std</th>\n",
       "      <th>Card Precision@100 Validation</th>\n",
       "      <th>Card Precision@100 Validation Std</th>\n",
       "      <th>Parameters summary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.866972</td>\n",
       "      <td>0.014858</td>\n",
       "      <td>0.620231</td>\n",
       "      <td>0.015977</td>\n",
       "      <td>0.297143</td>\n",
       "      <td>0.008207</td>\n",
       "      <td>{'clf__C': 0.1, 'clf__random_state': 0}</td>\n",
       "      <td>0.602494</td>\n",
       "      <td>0.865052</td>\n",
       "      <td>0.009591</td>\n",
       "      <td>0.608330</td>\n",
       "      <td>0.022740</td>\n",
       "      <td>0.278929</td>\n",
       "      <td>0.016300</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.867643</td>\n",
       "      <td>0.015404</td>\n",
       "      <td>0.623081</td>\n",
       "      <td>0.016204</td>\n",
       "      <td>0.297143</td>\n",
       "      <td>0.008806</td>\n",
       "      <td>{'clf__C': 1, 'clf__random_state': 0}</td>\n",
       "      <td>0.656055</td>\n",
       "      <td>0.866861</td>\n",
       "      <td>0.008988</td>\n",
       "      <td>0.612264</td>\n",
       "      <td>0.023474</td>\n",
       "      <td>0.278214</td>\n",
       "      <td>0.016914</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.867678</td>\n",
       "      <td>0.015415</td>\n",
       "      <td>0.623224</td>\n",
       "      <td>0.016087</td>\n",
       "      <td>0.297500</td>\n",
       "      <td>0.008828</td>\n",
       "      <td>{'clf__C': 10, 'clf__random_state': 0}</td>\n",
       "      <td>0.582498</td>\n",
       "      <td>0.867050</td>\n",
       "      <td>0.008918</td>\n",
       "      <td>0.612526</td>\n",
       "      <td>0.023715</td>\n",
       "      <td>0.277500</td>\n",
       "      <td>0.016763</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.867680</td>\n",
       "      <td>0.015419</td>\n",
       "      <td>0.623253</td>\n",
       "      <td>0.016074</td>\n",
       "      <td>0.297500</td>\n",
       "      <td>0.008828</td>\n",
       "      <td>{'clf__C': 100, 'clf__random_state': 0}</td>\n",
       "      <td>0.728584</td>\n",
       "      <td>0.867071</td>\n",
       "      <td>0.008912</td>\n",
       "      <td>0.612537</td>\n",
       "      <td>0.023712</td>\n",
       "      <td>0.277500</td>\n",
       "      <td>0.016763</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   AUC ROC Test  AUC ROC Test Std  Average precision Test  \\\n",
       "0      0.866972          0.014858                0.620231   \n",
       "1      0.867643          0.015404                0.623081   \n",
       "2      0.867678          0.015415                0.623224   \n",
       "3      0.867680          0.015419                0.623253   \n",
       "\n",
       "   Average precision Test Std  Card Precision@100 Test  \\\n",
       "0                    0.015977                 0.297143   \n",
       "1                    0.016204                 0.297143   \n",
       "2                    0.016087                 0.297500   \n",
       "3                    0.016074                 0.297500   \n",
       "\n",
       "   Card Precision@100 Test Std                               Parameters  \\\n",
       "0                     0.008207  {'clf__C': 0.1, 'clf__random_state': 0}   \n",
       "1                     0.008806    {'clf__C': 1, 'clf__random_state': 0}   \n",
       "2                     0.008828   {'clf__C': 10, 'clf__random_state': 0}   \n",
       "3                     0.008828  {'clf__C': 100, 'clf__random_state': 0}   \n",
       "\n",
       "   Execution time  AUC ROC Validation  AUC ROC Validation Std  \\\n",
       "0        0.602494            0.865052                0.009591   \n",
       "1        0.656055            0.866861                0.008988   \n",
       "2        0.582498            0.867050                0.008918   \n",
       "3        0.728584            0.867071                0.008912   \n",
       "\n",
       "   Average precision Validation  Average precision Validation Std  \\\n",
       "0                      0.608330                          0.022740   \n",
       "1                      0.612264                          0.023474   \n",
       "2                      0.612526                          0.023715   \n",
       "3                      0.612537                          0.023712   \n",
       "\n",
       "   Card Precision@100 Validation  Card Precision@100 Validation Std  \\\n",
       "0                       0.278929                           0.016300   \n",
       "1                       0.278214                           0.016914   \n",
       "2                       0.277500                           0.016763   \n",
       "3                       0.277500                           0.016763   \n",
       "\n",
       "   Parameters summary  \n",
       "0                 0.1  \n",
       "1                 1.0  \n",
       "2                10.0  \n",
       "3               100.0  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "performances_df_lr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `get_summary_performances` function gives the summary of the best parameters and corresponding performances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC</th>\n",
       "      <th>Average precision</th>\n",
       "      <th>Card Precision@100</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Best estimated parameters</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Validation performance</th>\n",
       "      <td>0.867+/-0.01</td>\n",
       "      <td>0.613+/-0.02</td>\n",
       "      <td>0.279+/-0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Test performance</th>\n",
       "      <td>0.868+/-0.02</td>\n",
       "      <td>0.623+/-0.02</td>\n",
       "      <td>0.297+/-0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal parameters</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal test performance</th>\n",
       "      <td>0.868+/-0.02</td>\n",
       "      <td>0.623+/-0.02</td>\n",
       "      <td>0.298+/-0.01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                AUC ROC Average precision Card Precision@100\n",
       "Best estimated parameters         100.0             100.0                0.1\n",
       "Validation performance     0.867+/-0.01      0.613+/-0.02       0.279+/-0.02\n",
       "Test performance           0.868+/-0.02      0.623+/-0.02       0.297+/-0.01\n",
       "Optimal parameters                100.0             100.0               10.0\n",
       "Optimal test performance   0.868+/-0.02      0.623+/-0.02       0.298+/-0.01"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summary_performances_lr=get_summary_performances(performances_df_lr, parameter_column_name=\"Parameters summary\")\n",
    "summary_performances_lr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us plot the performances as a function of the regularization value, together with the value that provides the best estimated performances.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EVKR37NnTxgMBqxbt65Q/127duHcuXPS5Ei2zEJEZas0x6Gnn34avr6+2LhxI86cOSN9APf0008jJycHJpMJ3t7e0snlrFmzip2gbMOGDZg0aRLGjh2LkJAQ3L17F0D+SVy9evWgUqlw+vRpqX9ycrL0/cPs7/LlywXakpOT4efnV2Tfkrbv7e2NlJSUAiejEyZMwPz58wtsJzExEYsWLULr1q0xduxY7N69GzVr1sTBgwcL9PPx8YFOp0Nqaqq07OzZs9BqtZzLgqiUFAoFQkJC8N133xW64nn48GHs3r0b1atXx9GjR3H9+nWsW7cOQ4cORfv27fH3339b/OCqYcOGBW7VuHjxInJycmyav6Iddzw9PaWC2M3NrUDxu2rVKshkMjzzzDPIzs7GwoULMXjw4FL9HFq0aIHExETp70MIgcTEROk2oxYtWiAhIUHqf+3aNfz9999SO5G1WGhXcnFxcXB3d0dYWBh8fX2lr44dO6JVq1bYunUr/P394efnh1GjRuE///kPLl++jF9++QVjx45Fz549UadOHQDAY489hn/961+YPHkyVq1ahQsXLuDUqVP4+OOPcfr0aaufI/npp58iKysLX3/9NYD8CSciIiIwb948zJ8/H6mpqbh48SJWr16NTz/9FB9//LF08mrrLERUdkpzHAIgXdV+/vnnpaHYDRo0QGBgID755BOcOHECZ86cwbhx45CWllZo0pp7PD09ER8fj8uXLyMhIUGagMdgMMDNzQ19+/bFrFmzkJSUhKSkJMyYMQNA/gy0D7O/u3fvYsqUKUhNTUVMTAz27NmDgQMHFtm3pO336tULOp0OM2fOxPnz5xEXF4e4uDgEBgYW2I6zszMWLVqEDRs24MqVK9i/fz+uXbuGpk2bFujn4+ODzp07Y9y4cTh58iROnjwpzTx870NUIirZBx98AL1ejyFDhuDw4cO4dOkStm7dio8++gh9+/ZFQEAAPD09cffuXfz000+4cuUKNm7ciPXr11u8x3fgwIH47rvvsHv3bvz111+YNGlSkRO9PoqKdtxp3Lgxjh07BgDo3r07Fi1ahP3792Pu3LlYuXIlVCoVDh48iMGDB+PFF18slLM4L730EnJycjB9+nScPXtW+qChR48eAICwsDDExcUhJiYGKSkpGDduHDp06ID69euXavtEhZTv08SovL300kti6tSpRbZt27ZN+Pr6ipSUFJGeni4mTpwoXnzxRdGkSRPRuXNn8eWXXwq9Xl9ovdjYWNG/f3/h7+8v2rRpI4YPHy5SUlKKzWDpOdpz584VjRs3LrD+8ePHxdChQ8Xzzz8v/P39xaBBg8T+/fuLXN/aLERU/kp7HPr777+Fn5+f9EzTe9LS0sTo0aOFv7+/CAgIEB9++KG4efOmEEKIw4cPC19fX5GXlyf1P378uHjllVdEs2bNRNeuXcXSpUvF66+/Lr755hshhBBarVaMGTNGtGzZUrz44otiyZIlwtfXV3oWq6X9PWjz5s3ixRdfFF988YVo2bKlCA4OFjt37pTax40bV+C5rKXZflJSkujfv79o2rSp6Natm9ixY0eR73X79u3ipZdeEk2bNhVdunQR3333nRBCiMuXLxd49mtGRoYYPXq0aNWqlWjdurUYN26cyMzMLPbnV1RmIhLi+vXrYvLkyaJDhw6iWbNm4uWXXxYrV64UBoNB6rNgwQLRtm1b0apVKxEaGio2b94sfH19xdWrV4v8fRNCiNWrV4sXXnhBtG7dWqxYsUIEBARY/Rzt+1X0445WqxXPP/+8OHHihMjMzBTDhg0TzZs3Fx999JE4fPiweP7558ULL7wgFi9eLEwmkzh37pzQ6XQF3u+Dee45ceKE6N27t2jatKno16+fOHXqVIH2LVu2iE6dOomWLVuKkSNHirS0NIs/ayJLZELwRiwiIqo69u3bh3bt2kmzAp88eRLh4eFITEy0+paTLVu2YN68eYWGThIR0cOLiYnBokWLsGzZMukZ5Q8ymUz44osvsH//fmzduhWurq7lnJLIMk6GRkREVco333yD/fv347333oNOp8OcOXPQpUsXzutAROQgXn/9dWRlZaF///4ICQlBly5dUL9+fbi6uiI9PR2JiYmIiYmBSqXC6tWrWWSTQ+IVbSIiqlLOnj2L6dOn4+TJk1Cr1ejSpQsmTpxY4jNyi8Ir2kREZSc1NRU//PADjhw5gqtXr0Kv18PDwwPPPvssevTogV69evFDUnJYLLSJiIiIiIiIbIizjhMRERERERHZEAttIiIiIiIiIhtioU1ERERERERkQyy0iYiIiIiIiGyIhTYRERERERGRDbHQJiIiIiIiIrIhFtpERERERERENsRCm4iIiIiIiMiGWGgTERERERER2RALbSIiIiIiIiIbYqFNREREREREZEMstImIiIiIiIhsiIU2ERERERERkQ2x0CYiIiIiIiKyIRbaRERERERERDbEQpuIiIiIiIjIhlhoExEREREREdkQC20iIiIiIiIiG1LaO8CjMJlMMJlMFvsoFIoS+9gDc1mHuaxXmmxqtbqc0tDD4nHO9pjLOhU9F49zjo/HOdtjLutU9Fw8zjmmCl9op6WlWezj5eVVYh97YC7rMJf1SpOtbt265ZSGHhaPc7bHXNap6Ll4nHN8PM7ZHnNZp6Ln4nHOMZXJ0HGz2YwpU6YgNDQUgwcPxsWLFwu0b9u2DT179kR4eDg2btxYqnWIiIiIiIiIKoIyKbT37dsHg8GA6OhojBkzBlFRUVJbeno65s+fj3Xr1uG7775DbGwsrly5YnEdIiIiIiIiooqiTIaOJyQkIDAwEADQsmVLJCcnS21XrlxBo0aN4OnpCQBo1qwZTpw4gZMnTxa7DhEREREREVFFUSaFtlarhUajkV4rFAoYjUYolUp4e3vj7NmzuH37Ntzc3PD777+jfv36FtchIiIiIiIi28rLy8OlS5eQm5tr7ygVjrOzM+rVqweVSlVke5lUsRqNBjqdTnptNpulgtnDwwMTJkzAhx9+iMceewxNmjRB9erVLa5THIVCAS8vL4t9lEpliX3sgbmsw1zWc+RsRERERGR/ly5dgkKhQO3atSGTyewdp8IQQkCn0+HSpUto0KBBkX3KpND29/dHfHw8evTogaSkJPj6+kptRqMRJ06cwPr162E0GjFkyBB8/PHHMJlMxa5THM5SaXvMZR1HzQVw1vGyZDabMXXqVKSkpECtViMyMhLe3t5S+8mTJxEVFQUhBGrVqoU5c+bAyckJS5cuxf79+5GXl4ewsDD079/fju+CiIiIqrrc3FwW2Q9BJpPBzc0NN2/eLLZPmRTawcHBOHToEAYMGAAhBGbOnInY2Fjk5OQgNDQUKpUKffv2hZOTE4YMGYIaNWoUuQ4RkSO6f/LGpKQkREVFYfHixQDyP+GcPHkyvv76a3h7e2Pjxo24evUqbt26hcTERPzwww+4e/cuVq1aZed3QURERAQW2Q+ppJ9bmRTacrkcERERBZbdf0n9gw8+wAcffFDiOkREjsjShI/nz5+Hp6cn1q5di7/++gsdO3aEj48Ptm7dCl9fX7z//vvQarX45JNP7BWfiIiIqMwsWLAAKSkpSEtLg16vx+OPPw5PT09ERkaWexa9Xo+9e/eiV69e5b7vKjPTmNaghVEYpddms7lAuxkFXwshCraLgu2PyuBkQIYuw6bbtIXKkkv877+yplfpka5LL/P9PAxXd1d7R6i0LE3emJGRgcTEREyePBne3t4YPnw4mjZtioyMDPz9999YsmQJrly5ghEjRmDPnj0lfhpq87kozOaCXyZT/p9G4z9fNqK8dQteNtxeIeLhfseVN27Ay2SycZhHx1zWUd68CS8PD8DJyd5RyM6EyP833yzM0p/3vhci/8sojDCajdL3tuKo5wHMZR1HzWVQGyA3y6GUV6yS7cMPPwQA7Ny5E5cuXcKIESPsliU9PR2xsbEstMuK0WzE9ZzrUMgUxfaRoeDJ7oMnvw+2P6pcYy70Jr1Nt2kLzGXZg/8fGMwGGE1lWEg8pFxTLnKNnD2yrFiavNHT0xPe3t545plnAACBgYFITk6Gp6cnfHx8oFar4ePjAycnJ6Snp5dYIFs1F4VeD5hMkN1fOJtMkP3ve5nJJBWnAv87zpnNgEwGIZcDMhkglz/CT6ag6p6eyMjMtNn2bMVuuUr4UIU/L+tUd3ZGul4P4Wr5Q0XORVF5mMwmZORmIE/k5RfNEDCZTTAJU4nnaXKZHDLIIJPJcO8/W3DU8wDmso6j5soyZEFj1lS4QrsoWq0WQ4YMwYYNG6BQKLBo0SI0atQIW7ZsQb169XDp0iUIIRAREQEvLy8sXrwYJ06cgNlsxoABA9ClS5cC24uMjMTVq1dhMBgQFhaGoKAgJCYmYtmyZZDL5XjiiSfwySefYO3atbhw4QJWrVqFt99+u1zfc8X/WysFvUkPGWRwUbrYO4rESeEEtUJt7xiFMJd11Ao1VIqip/S3J1t+Wk+FWZrw8amnnoJOp8PFixfh7e2N48eP47XXXoMQAt9++y2GDBmCmzdv4u7du/D09LRdKJMJiitX/nl9r3i+V0ArlRBqdYFir8zHfDg5AWrH+7112FxqNVDMI0LsylFz2fBDIaoYMvWZyDRkwknuBJlMBjnkUClUdr2/1FHPA5jLOo6aqzLdO63RaNC8eXMcOXIEbdq0weHDhzFs2DBs2bIFzZo1wyeffIItW7bg22+/Rdu2bXHt2jUsWbIEer0e7777Lp577jlUq1YNAKDT6fCf//wHK1euhEwmw9GjRyGEwOzZs7F48WJUr14dy5Ytw65du/Dmm28iNTW13ItsoIoU2nf0d6CSO94vDxFVTCVN+DhjxgyMGTMGQgi0atUKnTp1AgAcO3ZMKrqnTJkChaL4UTZWy8sDAAg3N9ttk4jIQeSZ8pChz4Cb0q1SFR9EVUmvXr2wadMmCCHQunVr6fnTAQEBAICmTZvi119/Re3atZGSkiLN6WU0GnH9+nWp0HZzc8Po0aPx+eefQ6fToXv37sjMzMTt27cxefJkAPn3Zj/33HN2eJf/qPSFtslswl3jXbgqeb8qEdlGSRM+tmvXDps2bSq0XllOgCZzwHtoiYhsJT03HQqZgkU2UQXWokULzJ8/H3FxcRg2bJi0PCUlBbVr18apU6fw9NNPo169evD398e4ceNgNpuxZs0aPP7441L/27dvIyUlBbNmzYJer0ffvn3RrVs31K5dG1FRUdBoNPj111/h6uoKmUxWaO6t8lLpC+1796nywExElZpenz9UnIioEtIZdHBScOI7ooquW7du2L9/P3x8fKRlu3btwoYNG+Ds7IwpU6bA3d0diYmJGDFiBO7evYsOHTrA7b4Re/fmpnnrrbfg4uKCsLAwqFQq/Otf/8LYsWNhNpvh5uaGyZMnw9XVFXl5eVi0aBFGjhxZru+10hfaOcYci5OgERFVCno9oKz0h3QiIiKqIEJCQgotM5lMhWYAHz58OLy9vQssGzVqVLHblclkRY4SbNOmDdq0aVNo+dq1a0sb2aZ4+YOIqBKQ5+YCtrznm4iIiMiGIiMjkZSUhO7du9s7Srng5Q8iooruf8/CNssACLO0+P7H1/D2GSKq8EwmyPW5EAo5hEKRP4qHxzaiCmPSpEmFln3zzTd2SFI+WGgTEVV0RiNMwoyr2qsw31doW/Jg4S0vgwFO2fJs3Mm+Y/PtPirmso6j5tKpVJCpnoQzONlpVSDTG6D6+zoUecb8R7v9b3IjoVbB7OQE4aSGUKkAhRJCqeDj34jI7lhoExFVdHl5MJgNMAszXFSlLDrum4FTlNETtVUKlUM+WpG5rOOoufJMeVDZaSbZqsBsNmPq1KlISUmBWq1GZGRkgXso9+7di2XLlkEmkyE0NBT9+/eX2k6cOIEvvvgC69ats1kexY1bkAnArNEUbDCaIL+rh0ybA0jHMgEolDCr1fkFuFoNoVT8cxWciKgc8GhDRFTR6fXINekhU1oxhPK+K9r3DzG3JTnkkMkc76oSc1nHUXPJBIcMl6V9+/bBYDAgOjoaSUlJiIqKwuLFiwHkT2b05ZdfYvPmzXB1dUWPHj3QtWtX1KhRA8uXL8eOHTvg4uJi20BmE4RKWfhopVTkF9GF+pshMxoh0+shM5sg+18HIZNBqG33wZFCmwPVnUybbc9WmMs6jppLqXECqtcDlM72jkIPgYU2EVFFp9dDZ9ZDLbPxiS0RVVkJCQkIDAwEALRs2RLJyclSm0KhwK5du6BUKpGWlgYA0qN36tWrhwULFhQ5I3C5ksvzH3moUhUswoUATHuXpwsAACAASURBVKW7xaa0hIPOLcxc1nHEXPK7dyFzt+3/r1R+WGgTEVVweXl6mGCCSs5Zx4nINrRaLTT3DdNWKBQwGo1Q/m/otVKpxI8//oiIiAh07NhRWt69e3dcuXLFLplLRSYDlDY8ViqVtt2erTCXdRw0l4DJ3hHKxYIFC5CSkoK0tDTo9Xo8/vjj8PT0RGRkZInrpqamIjs7Gy1btiyHpNZhoU1EVMEZTAZ7RyCiSkaj0UCn00mvzWazVEzf061bNwQFBWH8+PHYtm0b+vXr91D7UigU8PLysthHf0UJD083yOWOdeqqUCrg6eFh7xiFMJd1HDWXISsDNbxqwFnjae8oZerDDz8EAOzcuROXLl3CiBEjSr3ugQMHUKNGDRbaRERke7o8HRQyx/sknogqLn9/f8THx6NHjx5ISkqCr6+v1KbVajF8+HCsWrUKarUaLi4ukD/CLN8mk0kagl4co9mInMxcyBSOderq6eGBzDuONys/c1nHUXOpYUR6Wjqc9JavbNetW7ecEpUPo9GIOXPm4PLlyxBCYNiwYfD398fSpUuRkJAAIQSCgoLQpUsX7Nq1CyqVCn5+fmjcuLG9oxfgWEcrIiKymslsKpPHcxFR1RUcHIxDhw5hwIABEEJg5syZiI2NRU5ODkJDQ9GzZ08MHDgQSqUSfn5+6NWrl70jE9Ejij4Tje///N6m2wx/NhyhjUKtWic2NhYeHh6YMGEC7ty5g5EjR2L9+vXYs2cPFi5ciJo1a2LXrl2oVasWevTogRo1ajhckQ2w0CYiIiKiB8jlckRERBRY1qBBA+n70NBQhIYWffL85JNPIiYmpkzzEVHllZqaihMnTuCPP/4AkD/q5c6dO5g2bRqWLFmC9PR0tG3b1s4pS8ZCm4iIiIiIqIoLbRRq9dXnsuDt7Y1atWrhzTffhF6vx9q1a+Hi4oL9+/dj2rRpEEJg0KBBCAoKgkwmgxCFHvDnEDjWkIiIiIiIiBzCq6++ikuXLuH999/He++9h8ceewxqtRru7u546623MGrUKDz//POoU6cOGjVqhM2bNyMhIcHesQvhFW0iIiIiIiKyq5CQEOn7yZMnF2p/++238fbbbxdY1r59e7Rv377Msz0MXtEmIiIiIiIisiEW2kREREREREQ2VCZDx81mM6ZOnYqUlBSo1WpERkbC29tbat+xYwdWr14NuVyOfv36ITw8HAaDARMmTMDly5eh0WgwZcoU1K9fvyziEREREREREZWZMim09+3bB4PBgOjoaCQlJSEqKgqLFy+W2j///HPExcXB1dUVISEhCAkJQWxsLFxdXRETE4Nz585h+vTpWLlyZVnEIyIiIiIiIiozZVJoJyQkIDAwEADQsmVLJCcnF2j38/NDdnY2lEolhBCQyWQ4e/YsOnToAADw8fFBampqWUQjIiIiIiIiKlNlUmhrtVpoNBrptUKhgNFohFKZv7uGDRuiX79+cHFxQXBwMNzd3fHss88iPj4eQUFBOHHiBG7cuAGTyQSFQlHsfhQKBby8vCxmydBnoHr16nBWOtvmzdmIUqlE9erV7R2jEOayjqPmcspzglKpRDWvavaOQkRERERU5ZRJoa3RaKDT6aTXZrNZKrLPnDmDAwcO4Oeff4arqyvGjh2L3bt3o1+/fkhNTcUbb7wBf39/NGnSxGKRDQAmkwlpaWkW+5hdzMjIyHC4Qrt69erIyMiwd4xCmMs6jprrrvEuvFy8kJZl+fejbt265ZSIiIiIiKigkSNH4p133kFAQIC0bN68efDx8UGvXr0K9O3Xrx++//57xMTEICAgAI0bN5ba9Ho9wsPDsXnz5mL3tX37doSEhODcuXP47bffCj0qzNbKZNZxf39/HDx4EACQlJQEX19fqa1atWpwdnaGk5MTFAoFatSogaysLJw6dQoBAQFYt24dgoKC8NRTT5VFNCIiIiIiInIAr776Knbv3i29zsvLw6FDhxAcHFzsOoMHDy5QZJfWt99+C5PJBF9f3zIvsoEyuqIdHByMQ4cOYcCAARBCYObMmYiNjUVOTg5CQ0MRGhqK8PBwqFQq1KtXD3369IFWq8X8+fOxatUqVKtWDTNmzCiLaEREREREROQAOnXqhKVLlyI3NxfOzs749ddf4e/vj88++wx6vR5ZWVkYMmSINJcXAERGRiIoKAjNmzfHtGnTkJ2djSeffFJqT0xMxKpVqwAAubm5mDx5Mk6cOIH09HR89tlneP3117Ft2zZERERg7969iImJgVqtxpNPPolx48Zh7969OHz4MHJzc3H16lUMHDgQISEhVr+3Mim05XI5IiIiCixr0KCB9H1YWBjCwsIKtNeoUQNr1qwpizhERERERERkgVN0NJy//96m28wND4c+NLT4fTo5ITAwEL/88gu6d++OnTt3wt/fH927d4e/vz9OnTqFFStWFCi079m1axd8fHzw3nvv4fTp00hISAAAnD9/HlOmTEGtWrWwdu1axMfH480338SaNWswbdo0nD59GgBw584drFy5EqtXr4abmxvmz5+Pbdu2wcXFBVqtFnPnzsXly5fxySefOE6hTURERERERFSSXr16YeHChfD390d2djbatWuHtWvXIi4uDjKZDCaTqcj1zp8/j7Zt2wIAmjRpIs0JVqtWLcybNw8uLi64desWmjdvXuT6f//9N55++mm4ubkByH9a1tGjR9G4cWM0bNgQAFC7dm0YDIaHel8stImIiIiIiKo4fWioxavPZaVBgwbIycnBxo0b8corr2D58uXo1asX2rVrh507d2LXrl1Fruft7Y3k5GQEBgbir7/+gtFoBABERUUhJiYGbm5umD59OoQQAPJHXd/7HsifFPjChQu4e/cuXFxckJiYKM0TJpPJHvl9lclkaERERERERESlERISgh07diAoKAhdunTBvHnzMGLECBw7dgyZmZlFrtO3b1/cunULI0aMwObNm6FSqQAA3bt3x7vvvovhw4cjJycHt2/fBgA0b94c//73v6Vi29PTE++88w4+/PBDDBs2DHfu3EGfPn1s9p5k4v6yvoIxGAylerzXpeuX+HivUmIu6zhqrrvGu2hQtwHMOWaL/fh4L8dXmuOc4eY5ZNy+BYWzazmlKh1PDw9k3rlj7xiFMJd1HDWXkzBAWdMbLh41Lfbjcc7xleY4p7t0Cjl6I2QKxxqM6ai/H8xlHUfNpYYBTrWfgZPGw2K/RznOnT59GnXq1Hno9au6GzduoEmTJkW28Yo2EZGVzGYzpkyZgtDQUAwePBgXL14s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\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_performances_plots(performances_df_lr, \n",
    "                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'], \n",
    "                       expe_type_list=['Test','Validation'], expe_type_color_list=['#008000','#FF0000'],\n",
    "                       parameter_name=\"Regularization value\",\n",
    "                       summary_performances=summary_performances_lr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Performances tend to be a bit lower for a low $C$ value (0.1). $C$ values equal or higher than one provide similar performances. The default parameter $C=1$ seems therefore to be a sensible value for the logistic regression model. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Model_Selection_Random_Forest)=\n",
    "### Random forest\n",
    "\n",
    "The two main [hyperparameters of a random forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) are the maximum tree depth and the number of trees (parameters `max_depth` and `n_estimators`, respectively). [By default](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html), the maximum tree depth is `None` (that is, nodes are expanded until all leaves are pure or until all leaves contain less than `min_samples_split` samples), and the number of trees is 100. Let us try other values, by combining `max_depth` values in the set [5,10,20,50] and `n_estimators` values in the set [25,50,100]."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "classifier = sklearn.ensemble.RandomForestClassifier()\n",
    "\n",
    "# Note: n_jobs set to one for getting true execution times\n",
    "parameters = {'clf__max_depth':[5,10,20,50], 'clf__n_estimators':[25,50,100],\n",
    "              'clf__random_state':[0],'clf__n_jobs':[1]}\n",
    "\n",
    "start_time=time.time()\n",
    "\n",
    "performances_df=model_selection_wrapper(transactions_df, classifier, \n",
    "                                        input_features, output_feature,\n",
    "                                        parameters, scoring, \n",
    "                                        start_date_training_for_valid,\n",
    "                                        start_date_training_for_test,\n",
    "                                        n_folds=n_folds,\n",
    "                                        delta_train=delta_train, \n",
    "                                        delta_delay=delta_delay, \n",
    "                                        delta_assessment=delta_assessment,\n",
    "                                        performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                                        performance_metrics_list=performance_metrics_list,\n",
    "                                        n_jobs=1)\n",
    "\n",
    "execution_time_rf = time.time()-start_time\n",
    "\n",
    "parameters_dict=dict(performances_df['Parameters'])\n",
    "performances_df['Parameters summary']=[str(parameters_dict[i]['clf__n_estimators'])+\n",
    "                                   '/'+\n",
    "                                   str(parameters_dict[i]['clf__max_depth'])\n",
    "                                   for i in range(len(parameters_dict))]\n",
    "\n",
    "# Rename to performances_df_rf for model performance comparison at the end of this notebook\n",
    "performances_df_rf=performances_df\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC Test</th>\n",
       "      <th>AUC ROC Test Std</th>\n",
       "      <th>Average precision Test</th>\n",
       "      <th>Average precision Test Std</th>\n",
       "      <th>Card Precision@100 Test</th>\n",
       "      <th>Card Precision@100 Test Std</th>\n",
       "      <th>Parameters</th>\n",
       "      <th>Execution time</th>\n",
       "      <th>AUC ROC Validation</th>\n",
       "      <th>AUC ROC Validation Std</th>\n",
       "      <th>Average precision Validation</th>\n",
       "      <th>Average precision Validation Std</th>\n",
       "      <th>Card Precision@100 Validation</th>\n",
       "      <th>Card Precision@100 Validation Std</th>\n",
       "      <th>Parameters summary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.845287</td>\n",
       "      <td>0.003872</td>\n",
       "      <td>0.620712</td>\n",
       "      <td>0.022145</td>\n",
       "      <td>0.289286</td>\n",
       "      <td>0.010570</td>\n",
       "      <td>{'clf__max_depth': 5, 'clf__n_estimators': 25,...</td>\n",
       "      <td>1.270088</td>\n",
       "      <td>0.834147</td>\n",
       "      <td>0.009100</td>\n",
       "      <td>0.610413</td>\n",
       "      <td>0.023740</td>\n",
       "      <td>0.274286</td>\n",
       "      <td>0.015551</td>\n",
       "      <td>25/5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.850968</td>\n",
       "      <td>0.007508</td>\n",
       "      <td>0.620932</td>\n",
       "      <td>0.023824</td>\n",
       "      <td>0.290714</td>\n",
       "      <td>0.010996</td>\n",
       "      <td>{'clf__max_depth': 5, 'clf__n_estimators': 50,...</td>\n",
       "      <td>2.229425</td>\n",
       "      <td>0.844140</td>\n",
       "      <td>0.007473</td>\n",
       "      <td>0.609801</td>\n",
       "      <td>0.027459</td>\n",
       "      <td>0.272857</td>\n",
       "      <td>0.015085</td>\n",
       "      <td>50/5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.855230</td>\n",
       "      <td>0.007315</td>\n",
       "      <td>0.627034</td>\n",
       "      <td>0.021852</td>\n",
       "      <td>0.292500</td>\n",
       "      <td>0.010850</td>\n",
       "      <td>{'clf__max_depth': 5, 'clf__n_estimators': 100...</td>\n",
       "      <td>4.209755</td>\n",
       "      <td>0.849065</td>\n",
       "      <td>0.011019</td>\n",
       "      <td>0.619450</td>\n",
       "      <td>0.026249</td>\n",
       "      <td>0.275000</td>\n",
       "      <td>0.016614</td>\n",
       "      <td>100/5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.867271</td>\n",
       "      <td>0.006166</td>\n",
       "      <td>0.648583</td>\n",
       "      <td>0.012831</td>\n",
       "      <td>0.300714</td>\n",
       "      <td>0.010950</td>\n",
       "      <td>{'clf__max_depth': 10, 'clf__n_estimators': 25...</td>\n",
       "      <td>2.068099</td>\n",
       "      <td>0.865000</td>\n",
       "      <td>0.002259</td>\n",
       "      <td>0.651858</td>\n",
       "      <td>0.020059</td>\n",
       "      <td>0.285357</td>\n",
       "      <td>0.012305</td>\n",
       "      <td>25/10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.869225</td>\n",
       "      <td>0.007955</td>\n",
       "      <td>0.655050</td>\n",
       "      <td>0.014192</td>\n",
       "      <td>0.300000</td>\n",
       "      <td>0.012495</td>\n",
       "      <td>{'clf__max_depth': 10, 'clf__n_estimators': 50...</td>\n",
       "      <td>3.791683</td>\n",
       "      <td>0.871323</td>\n",
       "      <td>0.004542</td>\n",
       "      <td>0.659386</td>\n",
       "      <td>0.021993</td>\n",
       "      <td>0.286786</td>\n",
       "      <td>0.015531</td>\n",
       "      <td>50/10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.874949</td>\n",
       "      <td>0.011903</td>\n",
       "      <td>0.664613</td>\n",
       "      <td>0.014215</td>\n",
       "      <td>0.303214</td>\n",
       "      <td>0.013030</td>\n",
       "      <td>{'clf__max_depth': 10, 'clf__n_estimators': 10...</td>\n",
       "      <td>7.230055</td>\n",
       "      <td>0.872388</td>\n",
       "      <td>0.005256</td>\n",
       "      <td>0.663481</td>\n",
       "      <td>0.024010</td>\n",
       "      <td>0.286429</td>\n",
       "      <td>0.017627</td>\n",
       "      <td>100/10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.853581</td>\n",
       "      <td>0.014851</td>\n",
       "      <td>0.660131</td>\n",
       "      <td>0.013713</td>\n",
       "      <td>0.296429</td>\n",
       "      <td>0.012016</td>\n",
       "      <td>{'clf__max_depth': 20, 'clf__n_estimators': 25...</td>\n",
       "      <td>3.181439</td>\n",
       "      <td>0.869824</td>\n",
       "      <td>0.005664</td>\n",
       "      <td>0.680407</td>\n",
       "      <td>0.016981</td>\n",
       "      <td>0.285357</td>\n",
       "      <td>0.014962</td>\n",
       "      <td>25/20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.862653</td>\n",
       "      <td>0.016004</td>\n",
       "      <td>0.673352</td>\n",
       "      <td>0.011485</td>\n",
       "      <td>0.297143</td>\n",
       "      <td>0.013439</td>\n",
       "      <td>{'clf__max_depth': 20, 'clf__n_estimators': 50...</td>\n",
       "      <td>6.027631</td>\n",
       "      <td>0.876311</td>\n",
       "      <td>0.006772</td>\n",
       "      <td>0.690434</td>\n",
       "      <td>0.019828</td>\n",
       "      <td>0.287143</td>\n",
       "      <td>0.016506</td>\n",
       "      <td>50/20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.870378</td>\n",
       "      <td>0.016910</td>\n",
       "      <td>0.677675</td>\n",
       "      <td>0.011698</td>\n",
       "      <td>0.299286</td>\n",
       "      <td>0.013190</td>\n",
       "      <td>{'clf__max_depth': 20, 'clf__n_estimators': 10...</td>\n",
       "      <td>11.521331</td>\n",
       "      <td>0.879728</td>\n",
       "      <td>0.006367</td>\n",
       "      <td>0.694063</td>\n",
       "      <td>0.020657</td>\n",
       "      <td>0.288571</td>\n",
       "      <td>0.016690</td>\n",
       "      <td>100/20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.858527</td>\n",
       "      <td>0.008786</td>\n",
       "      <td>0.651899</td>\n",
       "      <td>0.009478</td>\n",
       "      <td>0.296429</td>\n",
       "      <td>0.010996</td>\n",
       "      <td>{'clf__max_depth': 50, 'clf__n_estimators': 25...</td>\n",
       "      <td>3.340531</td>\n",
       "      <td>0.869956</td>\n",
       "      <td>0.003717</td>\n",
       "      <td>0.674013</td>\n",
       "      <td>0.021356</td>\n",
       "      <td>0.283929</td>\n",
       "      <td>0.016671</td>\n",
       "      <td>25/50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.865997</td>\n",
       "      <td>0.013420</td>\n",
       "      <td>0.663305</td>\n",
       "      <td>0.009296</td>\n",
       "      <td>0.296071</td>\n",
       "      <td>0.011401</td>\n",
       "      <td>{'clf__max_depth': 50, 'clf__n_estimators': 50...</td>\n",
       "      <td>6.319636</td>\n",
       "      <td>0.875154</td>\n",
       "      <td>0.003631</td>\n",
       "      <td>0.683127</td>\n",
       "      <td>0.020882</td>\n",
       "      <td>0.287143</td>\n",
       "      <td>0.015518</td>\n",
       "      <td>50/50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.870256</td>\n",
       "      <td>0.014185</td>\n",
       "      <td>0.671611</td>\n",
       "      <td>0.011290</td>\n",
       "      <td>0.298571</td>\n",
       "      <td>0.013363</td>\n",
       "      <td>{'clf__max_depth': 50, 'clf__n_estimators': 10...</td>\n",
       "      <td>12.293192</td>\n",
       "      <td>0.878369</td>\n",
       "      <td>0.002908</td>\n",
       "      <td>0.691405</td>\n",
       "      <td>0.019560</td>\n",
       "      <td>0.287500</td>\n",
       "      <td>0.015199</td>\n",
       "      <td>100/50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    AUC ROC Test  AUC ROC Test Std  Average precision Test  \\\n",
       "0       0.845287          0.003872                0.620712   \n",
       "1       0.850968          0.007508                0.620932   \n",
       "2       0.855230          0.007315                0.627034   \n",
       "3       0.867271          0.006166                0.648583   \n",
       "4       0.869225          0.007955                0.655050   \n",
       "5       0.874949          0.011903                0.664613   \n",
       "6       0.853581          0.014851                0.660131   \n",
       "7       0.862653          0.016004                0.673352   \n",
       "8       0.870378          0.016910                0.677675   \n",
       "9       0.858527          0.008786                0.651899   \n",
       "10      0.865997          0.013420                0.663305   \n",
       "11      0.870256          0.014185                0.671611   \n",
       "\n",
       "    Average precision Test Std  Card Precision@100 Test  \\\n",
       "0                     0.022145                 0.289286   \n",
       "1                     0.023824                 0.290714   \n",
       "2                     0.021852                 0.292500   \n",
       "3                     0.012831                 0.300714   \n",
       "4                     0.014192                 0.300000   \n",
       "5                     0.014215                 0.303214   \n",
       "6                     0.013713                 0.296429   \n",
       "7                     0.011485                 0.297143   \n",
       "8                     0.011698                 0.299286   \n",
       "9                     0.009478                 0.296429   \n",
       "10                    0.009296                 0.296071   \n",
       "11                    0.011290                 0.298571   \n",
       "\n",
       "    Card Precision@100 Test Std  \\\n",
       "0                      0.010570   \n",
       "1                      0.010996   \n",
       "2                      0.010850   \n",
       "3                      0.010950   \n",
       "4                      0.012495   \n",
       "5                      0.013030   \n",
       "6                      0.012016   \n",
       "7                      0.013439   \n",
       "8                      0.013190   \n",
       "9                      0.010996   \n",
       "10                     0.011401   \n",
       "11                     0.013363   \n",
       "\n",
       "                                           Parameters  Execution time  \\\n",
       "0   {'clf__max_depth': 5, 'clf__n_estimators': 25,...        1.270088   \n",
       "1   {'clf__max_depth': 5, 'clf__n_estimators': 50,...        2.229425   \n",
       "2   {'clf__max_depth': 5, 'clf__n_estimators': 100...        4.209755   \n",
       "3   {'clf__max_depth': 10, 'clf__n_estimators': 25...        2.068099   \n",
       "4   {'clf__max_depth': 10, 'clf__n_estimators': 50...        3.791683   \n",
       "5   {'clf__max_depth': 10, 'clf__n_estimators': 10...        7.230055   \n",
       "6   {'clf__max_depth': 20, 'clf__n_estimators': 25...        3.181439   \n",
       "7   {'clf__max_depth': 20, 'clf__n_estimators': 50...        6.027631   \n",
       "8   {'clf__max_depth': 20, 'clf__n_estimators': 10...       11.521331   \n",
       "9   {'clf__max_depth': 50, 'clf__n_estimators': 25...        3.340531   \n",
       "10  {'clf__max_depth': 50, 'clf__n_estimators': 50...        6.319636   \n",
       "11  {'clf__max_depth': 50, 'clf__n_estimators': 10...       12.293192   \n",
       "\n",
       "    AUC ROC Validation  AUC ROC Validation Std  Average precision Validation  \\\n",
       "0             0.834147                0.009100                      0.610413   \n",
       "1             0.844140                0.007473                      0.609801   \n",
       "2             0.849065                0.011019                      0.619450   \n",
       "3             0.865000                0.002259                      0.651858   \n",
       "4             0.871323                0.004542                      0.659386   \n",
       "5             0.872388                0.005256                      0.663481   \n",
       "6             0.869824                0.005664                      0.680407   \n",
       "7             0.876311                0.006772                      0.690434   \n",
       "8             0.879728                0.006367                      0.694063   \n",
       "9             0.869956                0.003717                      0.674013   \n",
       "10            0.875154                0.003631                      0.683127   \n",
       "11            0.878369                0.002908                      0.691405   \n",
       "\n",
       "    Average precision Validation Std  Card Precision@100 Validation  \\\n",
       "0                           0.023740                       0.274286   \n",
       "1                           0.027459                       0.272857   \n",
       "2                           0.026249                       0.275000   \n",
       "3                           0.020059                       0.285357   \n",
       "4                           0.021993                       0.286786   \n",
       "5                           0.024010                       0.286429   \n",
       "6                           0.016981                       0.285357   \n",
       "7                           0.019828                       0.287143   \n",
       "8                           0.020657                       0.288571   \n",
       "9                           0.021356                       0.283929   \n",
       "10                          0.020882                       0.287143   \n",
       "11                          0.019560                       0.287500   \n",
       "\n",
       "    Card Precision@100 Validation Std Parameters summary  \n",
       "0                            0.015551               25/5  \n",
       "1                            0.015085               50/5  \n",
       "2                            0.016614              100/5  \n",
       "3                            0.012305              25/10  \n",
       "4                            0.015531              50/10  \n",
       "5                            0.017627             100/10  \n",
       "6                            0.014962              25/20  \n",
       "7                            0.016506              50/20  \n",
       "8                            0.016690             100/20  \n",
       "9                            0.016671              25/50  \n",
       "10                           0.015518              50/50  \n",
       "11                           0.015199             100/50  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "performances_df_rf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `get_summary_performances` function gives the summary of the best parameters and corresponding performances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC</th>\n",
       "      <th>Average precision</th>\n",
       "      <th>Card Precision@100</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Best estimated parameters</th>\n",
       "      <td>100/20</td>\n",
       "      <td>100/20</td>\n",
       "      <td>100/20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Validation performance</th>\n",
       "      <td>0.88+/-0.01</td>\n",
       "      <td>0.694+/-0.02</td>\n",
       "      <td>0.289+/-0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Test performance</th>\n",
       "      <td>0.87+/-0.02</td>\n",
       "      <td>0.678+/-0.01</td>\n",
       "      <td>0.299+/-0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal parameters</th>\n",
       "      <td>100/10</td>\n",
       "      <td>100/20</td>\n",
       "      <td>100/10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal test performance</th>\n",
       "      <td>0.875+/-0.01</td>\n",
       "      <td>0.678+/-0.01</td>\n",
       "      <td>0.303+/-0.01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                AUC ROC Average precision Card Precision@100\n",
       "Best estimated parameters        100/20            100/20             100/20\n",
       "Validation performance      0.88+/-0.01      0.694+/-0.02       0.289+/-0.02\n",
       "Test performance            0.87+/-0.02      0.678+/-0.01       0.299+/-0.01\n",
       "Optimal parameters               100/10            100/20             100/10\n",
       "Optimal test performance   0.875+/-0.01      0.678+/-0.01       0.303+/-0.01"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summary_performances_rf=get_summary_performances(performances_df_rf, parameter_column_name=\"Parameters summary\")\n",
    "summary_performances_rf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The best performances are obtained with forests containing 100 trees, with a maximum depth of 10 or 20. The optimal parameters differ from the best estimated parameters for the AUC and CP@100. The difference in terms of performances is however low, and the best estimated parameters can be considered close to the optimal ones.\n",
    "\n",
    "The visualization of the performances as a function of the model parameters is trickier since two parameters are varied. Let us first fix the number of trees, and then vary the maximum tree depth.\n",
    "\n",
    "Fixing the number of trees to 100, we get:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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bNgwALZs2UL37t0TgffB+vbty6ZNm6q9LUKI2nGo+1B2djYbN25Mmm+3Zs0asrOzAbj77rspKCjgjTfe4LnnnuObb75JGqq5b98+AoEAS5cuZfTo0Tz//POsXbuWP/7xj6xZs4bRo0cze/Zs9u3bB8Ds2bPZsGEDL7zwAnPmzOGFF17Atu3E8ao638G2b9/O1q1bWbhwIbfccguzZ8/mgw8+SKx/++23+fWvf83zzz9Ply5dKj1+fn4+11xzDZ06dWLp0qX87ne/4/777y83PHL79u08/PDD3HXXXaxZs4YRI0Zw6623UlxcXK59v/nNb/j888959tlnefnll/nmm2+ShkPm5eWxevVq5s+fz4MPPsjf/va3o3oZK0RjtWvXLkKhED169Khw/dlnn43P50MpxU033cSJJ57I8uXLWbhwIY7j8NhjjyW2Pfh+VTr17aGHHuKll15KdCgcLtu2+eSTT1ixYgWDBg1KLG/I9538/HzeffddbrnlFkKhEFdeeSVt27blzTffJCsri7vuuouuXbui6zoTJkxg7dq1iePefPPN/OpXv6rwWXL//v0cd9xxScvatGmT+GzIycmpdL0QR6ryCReiUdi3bx+ffvopjz/+OADDhg1jwYIFfPDBBwwZMuSwj+P3+2nduvVRtSEnJ4c+ffokfo5EInTq1Ik5c+YklhcVFdGmTZtDHqNFixYUFBQcc1uEELWvqvtQp06d+Pvf/87ll1/O7t27+fzzz5k7dy67du3i73//O+vXr6dly5YAPProowwaNIi9e/cmjn/99dfToUMHADIzM3nwwQfp3bs3AJMnT2bu3Ll88803ZGRksGzZMp599tnEvefee+/l+uuvB6jyfO3bt6/w+h599FHatm1LZmYmn3zyCYsWLeIXv/gFAKeffjpDhw49rOOvXbuW9PR07rvvPgzDoFOnThQWFuI4TtL5fvjhBwBOOukkTjrpJG688UZ69OiBx+NJ2u6LL77gk08+YfXq1XTu3BlwRxD88pe/TPSyWZbF3XffTdeuXTnttNMYMGAAW7ZsOYL/ukI0bqWBZLNmzSrdLhwOc8kllzBx4kTS09MBGD16NM8991zSdmXvV4sXL+bKK6/k/PPPB9xReSNHjqz0PAsWLODVV18FIBqNYhgGF154Idddd11im4Z83/nggw8477zz8Pl8zJ07F13XmTlzJrqu89Of/pTFixfTrVs3ADp16pT0WVCZcDic6PUv5fV6icVigPtsWtl6IY6UBNpNwOrVqzEMI/HQ16tXL4477jiWLVvGkCFDME0TpVSF+zqOk0iA0apVqwrfWh6Otm3b8sYbb6CUYsuWLcyePZtx48bxy1/+MrFNixYtyM3NPeQxcnJyaNWq1TG3RQhR+6q6D40YMSIRaK9Zs4Y+ffrQvn171q1bh1Iq8RBa1rfffpsY1XLSSScllg8ZMoSPPvqIRx55hK+//jqRHNFxHL7++mvi8XhSz1TZl4A7d+6s9HwVBdo/+clPaNu2beLnM844g9dffz3xc9nkQFUd/6uvvuK0005L6o254oorAJKyEJ977rn07duXiy++mMzMTAYNGsQll1yCz+dLOubXX39Nenp64mEX3AfTFi1asHPnzsQ9tfShHyAjI6PKDMNCNCWlvydFRUWVbpeWlsbEiRNZvnw5W7duTdx/SoPbUmXvVzt37mTy5MmJnzMzM8sNTz/YuHHjuOaaawDweDy0bdu2XIDYkO87O3fupEuXLgCsWrWKcePGJY1gTE1N5fTTTwcgEAiUO/+hpKSklAuaY7EYqamph7VeiCMlgXYTUDo8s1+/folljuPw/vvvk5+fT/PmzSucf6iUwu/307x5cwB69OjB/PnzUUqhaVrStu+//z7Lly/nscceK/dmE0DXdTp27Ai4Q7t1XWfq1Km0b9+e4cOHA9C7d2/mz59PLBYr94GhlGLbtm2cc845x9wWIUTtq+o+lJ2dzbx58ygoKGDNmjWMGTMGcIdFpqWlsWzZsnLHbNeuXaIHpOyD6Zw5c1i0aBFjx47loosu4r777ksMqSx9cVj25WLZ76s6X0UOzsZr23bSQ2HZ+1lVxy+d71gVn8/Hyy+/zIYNG1i3bh1r1qzh9ddf54033iAjI6PCcx/cxrK9VQffKw/18lWIpqhDhw60bNmSLVu20LNnz3Lrb731Vi688EL69+/PJZdcQosWLRgyZAgXXnghX3/9dbls4AcH0gf/vh1qCl2p5s2bJ56pDqUh33eKi4sTLwp27drFT3/608Q2gUCA3bt30717dwD++c9/0qtXr8Nq//HHH8/+/fuTluXm5ibu7ccff3y5Dp+y64U4UjJHu5H79ttv2bp1K3fddRfLli1LfD333HPE43FWrVpF165d+fbbbxPDskt98cUXRCKRxFvDCy64gEAgwPLly5O2cxyHBQsWUFhYeNiBbXZ2Nueffz4zZ85MBPkjR44kFovx2muvldt+9erVfP3114nkSNXZFiFEzTqc+9Cpp55KZmYmb775Jl988UXiBdypp55KKBTCtm06duyYeLh8+OGHD5mgbOHChdx7773cfvvtZGdnEw6HAfchrkOHDng8HrZt25bYfuvWrYnvj+Z8u3fvTlq3detWunbtWuG2VR2/Y8eO7NixI+lh9K677uKpp55KOs7GjRt55plnOPPMM7n99tt55513aNu2LR9++GHSdp06dSIYDLJz587Esq+++opAICC5LIQ4TIZhkJ2dzeuvv16ux3P9+vW88847tGrVik8++YQff/yR1157jeuvv55zzjmHPXv2VPriqkuXLklTNb777jtCoVC1tr+h3XdatmyZCIjT09OTgt8XX3wRTdP46U9/it/vZ+7cuVx55ZWH9ffQq1cvNm7cmPjvoZRi48aNiWlGvXr1YsOGDYnt9+7dy549exLrhThSEmg3citXrqR58+ZMmDCBzMzMxNcvfvEL+vTpw9KlS8nKyqJr167ccsst/Pe//2X37t188MEH3H777YwcOZLjjz8egBNOOIHf/va3TJ8+nRdffJFvv/2WLVu28Lvf/Y5t27YdcR3Je+65h+LiYv74xz8CbsKJmTNn8uSTT/LUU0+xc+dOvvvuO1566SXuuecefve73yUeXqu7LUKImnM49yEg0at91llnJYZid+7cmQEDBnDHHXewefNmvvjiC6ZNm0ZeXl65pDWlWrZsybp169i9ezcbNmxIJOCJxWKkp6czZswYHn74YTZt2sSmTZt48MEHATcD7dGcLxwOM2PGDHbu3MnixYtZs2YNl19+eYXbVnX8UaNGEQwGeeihh/jmm29YuXIlK1euZMCAAUnHSU1N5ZlnnmHhwoV8//33rF27lr1793LGGWckbdepUyfOP/98pk2bxmeffcZnn32WyDxc+hJVCFG13/zmN0SjUSZNmsT69evZtWsXS5cu5dZbb2XMmDH07duXli1bEg6H+fvf/87333/Pm2++yRtvvFHpHN/LL7+c119/nXfeeYcvv/ySe++9t8JEr8eiod13unXrxn/+8x8Ahg8fzjPPPMPatWuZM2cOCxYswOPx8OGHH3LllVdy7rnnlmvnoVxwwQWEQiFmzZrFV199lXjRMGLECAAmTJjAypUrWbx4MTt27GDatGkMHDiQU0455bCOL0Q5tVtNTNS2Cy64QN1///0Vrlu2bJnKzMxUO3bsUPn5+eruu+9W5557rurevbs6//zz1e9//3sVjUbL7bdixQo1btw4lZWVpfr166cmT56sduzYccg2VFZHe86cOapbt25J+3/66afq+uuvV2eddZbKyspSV1xxhVq7dm2F+x9pW4QQte9w70N79uxRXbt2TdQ0LZWXl6emTp2qsrKyVN++fdXNN9+scnJylFJKrV+/XmVmZqp4PJ7Y/tNPP1UXXnih6tGjhxo8eLB67rnn1KWXXqr+9Kc/KaWUCgQC6rbbblO9e/dW5557rnr22WdVZmZmohZrZec72FtvvaXOPfdc9cQTT6jevXuroUOHqlWrViXWT5s2Laku6+Ecf9OmTWrcuHHqjDPOUMOGDVNvv/12hde6fPlydcEFF6gzzjhDDRo0SL3++utKKaV2796dVPu1oKBATZ06VfXp00edeeaZatq0aaqwsPCQf38VtVkIodSPP/6opk+frgYOHKh69OihfvnLX6oFCxaoWCyW2Obpp59WZ599turTp48aP368euutt1RmZqb64YcfKvx9U0qpl156Sf385z9XZ555pnrhhRdU3759j7iOdlkN/b4TCATUWWedpTZv3qwKCwvVDTfcoHr27KluvfVWtX79enXWWWepn//852revHnKtm319ddfq2AwmHS9B7en1ObNm9XFF1+szjjjDDV27Fi1ZcuWpPVLlixR5513nurdu7e66aabVF5eXqV/10JURlNKJmIJIYRoOt577z369++fyAr82WefMXHiRDZu3HjEU06WLFnCk08+WW7opBBCiKO3ePFinnnmGebPn5+oUX4w27Z54oknWLt2LUuXLiUtLa2WWylE5SQZmhBCiCblT3/6E2vXruXGG28kGAzy+OOPM2jQIMnrIIQQ9cSll15KcXEx48aNIzs7m0GDBnHKKaeQlpZGfn4+GzduZPHixXg8Hl566SUJskW9JD3aQgghmpSvvvqKWbNm8dlnn+H1ehk0aBB33313lTVyKyI92kIIUXN27tzJX/7yFz7++GN++OEHotEoLVq04PTTT2fEiBGMGjVKXpKKeksCbSGEEEIIIYQQohpJ1nEhhBBCCCGEEKIaSaAthBBCCCGE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\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "performances_df_rf_fixed_number_of_trees=performances_df_rf[performances_df_rf[\"Parameters summary\"].str.startswith(\"100\")]\n",
    "\n",
    "summary_performances_fixed_number_of_trees=get_summary_performances(performances_df_rf_fixed_number_of_trees, parameter_column_name=\"Parameters summary\")\n",
    "\n",
    "get_performances_plots(performances_df_rf_fixed_number_of_trees, \n",
    "                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'], \n",
    "                       expe_type_list=['Test','Validation'], expe_type_color_list=['#008000','#FF0000'],\n",
    "                       parameter_name=\"Number of trees/Maximum tree depth\",\n",
    "                       summary_performances=summary_performances_fixed_number_of_trees)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A maximum tree depth of 5 provides the lowest peformances. Performances increase with maximum tree depth, until a tree depth of 10 to 20 where they reach a plateau then slightly decrease. \n",
    "\n",
    "Let us then fix the maximum tree depth, and the vary the number of estimators. Fixing the maximum tree depth to 20, we get:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9oAAAEmCAYAAACd2OgMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3wUdf4/8NfM7G7KhiQQilgSiiQIIhBQxDOodEFQQAxFrHiC7RS/iiAgBESwHHpIEQVURAGPXgSPAxu/Q5QjNCWeCAQQBdJ3ky0z8/n9MdlJllQgyaa8nppHdqd+dpVh3vN5f94fSQghQEREREREREQVQg50A4iIiIiIiIhqEwbaRERERERERBWIgTYRERERERFRBWKgTURERERERFSBGGgTERERERERVSAG2kREREREREQViIF2HbJp0ybExcVhyZIlfsvnzp2L4cOHF7tPt27dsGbNGr9l33zzDR588EF07twZXbp0weOPP46ffvqpxPOuWbMGcXFxfj/t2rVDnz598OmnnxbZfvfu3XjooYcQHx+Pzp07Y9SoUfjqq6+KPfbFtoWIAquk6xCV7fvvv0dcXBxUVS11u1OnTiEuLg4nTpyoopYR1Q3Z2dmYPXs2evTogfbt26NPnz5YtGgRvF5vhZ1DVVXExcXh+++/L3b9qFGj/O6n2rRpg27dumH27NkV2g6fQF93srKyMHfuXNxzzz3o2LEjOnbsiP79++Pvf/87zp49W+J+mZmZuOWWW4q058iRI0hMTET79u0xePBgHDhwwG/9li1b0KtXL7Rv3x5jx45FWlpahX4eqlsYaNchmzZtQkxMDNauXXvJx1i2bBmefvppJCQkYOXKlfj4448RFRWFkSNHlhrgNmrUCN999535s379evTo0QPTpk3Dnj17zO3WrVuH0aNHo3379li1ahVWrVqFbt264ZlnnsEHH3xQIW0hosCpiOtQXdWxY0d89913sFgspW7XtGlTfPfdd7j66qurqGVEtV9mZiaGDh2K/fv3Y8aMGdi0aRPGjRuHZcuWYcKECVXalgcffNC8n9q5cyemTp2KFStWYNGiRRV+rkBed44ePYoBAwZgz549eOyxx7By5UqsW7cO48aNw//+9z/cfffd+PHHH4vsl5WVhTFjxhQJknNzc817zDVr1qBTp054/PHH4XA4AAAHDhzASy+9hLFjx2LlypVwOBx48cUXK+zzUB0kqE7IzMwUbdu2FevXrxexsbHi8OHD5rp//OMfYtiwYcXul5CQIFavXi2EECI1NVW0bdtWrF27tsh2o0aNEo8++mixx1i9erVISEgodl2vXr3Eq6++KoQQ4uzZs+KGG24Qn332WZHtNm/eLNq0aSN++eWXy2oLEQVOadchIqLq7OWXXxb9+/cXLpfLb/n3338vYmNjRXJycoWcx+v1itjYWLF79+5i199///3i73//e5HlkydPFgMHDqyQNlQH58+fF7fccov46KOPStzmn//8p+jatav4888/zWU//PCD6N69uxgwYICIjY0Vx48fN9d9/vnn4vbbbxeapgkhhNB1XfTq1UusWrVKCCHECy+8IJ5//nlz+99//73IMYguBnu064ht27bBZrOhX79+aNasWZF08PLYtGkTIiMjMXDgwCLrkpKS8PLLL1/0MW02GxRFAQBs2LABYWFhGDp0aJHtfO1evXp1pbWFiCpXSdehN998s8jwlUWLFmHIkCEAgJycHIwfPx6dOnXCX/7yF0yePNnsgfj+++/RrVs3JCUloVOnTpg7dy68Xi9mz56Nbt26oW3btrjjjjv8hqm4XC68/PLL6NSpExISEvD555+jTZs2OHXqVJnnu9CaNWtw3333Yc6cOYiPj8dtt92GFStWmOtfeukljB8/Hvfccw+6dOmClJSUMo//008/4f7770f79u3Ro0cP/POf/zQ/a+EUzuXLl6NHjx5o164dBgwYgJ07dwIomsKZlZWFyZMn45ZbbkF8fDyef/55ZGZm+n1/K1euRLdu3dClSxe88MILcLlcl/KfmKhW8ng82Lx5M0aOHImgoCC/dTfddBM++ugjxMbGAjB6YUePHo2OHTuiXbt2GD58OP73v/8BKP56BQDvvvsuunbtiptvvvmSs30sFgtsNhuA2nHdmTNnDgYOHIgHHngAf/zxB8aMGYOOHTti9OjR+PLLL9GxY0cMGjQIPXr0wNKlS839/vOf/yAxMdH8bgvbv38/4uPjIctG+CNJEuLj47Fv3z5z/Y033mhu37RpU1x11VXmeqKLxUC7jti4cSO6desGi8WCHj16YNOmTRc9lufIkSO4/vrrzQtUYc2aNUPz5s3LfSyPx4MPPvgAv/76K3r37g0AOHjwINq2bWsG3hfq1KkTkpOTK7wtRFQ1SroO9e/fH/v27fMbb7d161b0798fADBx4kRkZGRg+fLleO+993Ds2DG/VM0///wTDocDa9euxaBBg/D+++9jx44d+Mc//oGtW7di0KBBmDFjBv78808AwIwZM7B371588MEHmDNnDj744ANommYer6zzXeinn37CoUOHsGLFCjzzzDOYMWMGvv76a3P9hg0b8OSTT+L9999Hq1atSj1+eno6HnroIbRo0QJr167Fc889h6lTpxZJj/zpp5/w2muvYcKECdi6dSv69euHZ599FtnZ2UXa99RTT+Hnn3/GwoUL8eGHH+LYsWN+6ZBpaWnYsmULFi1ahFdffRVffvnlJT2MJaqtUlNTkZubi3bt2hW7/uabb0ZISAiEEHjiiSdw5ZVXYv369VixYgV0Xcfrr79ubnvh9co39G3mzJlYunSp2aFQXpqmYc+ePdi4cSO6d+9uLq/J15309HRs27YNzzzzDHJzczFq1Cg0bNgQn3/+OeLj4zFhwgTExcVBlmUMHz4cO3bsMI/79NNP469//Wux95Lnzp1D48aN/ZZFRUWZfzecPXu21PVEF6v0ARdUK/z555/48ccf8cYbbwAAevfujcWLF+Prr79Gz549y32cnJwcNGjQ4JLacPbsWXTs2NF873K50KJFC8yZM8dcnpWVhaioqBKPERERgYyMjMtuCxFVvbKuQy1atMC//vUvjBw5EidPnsTPP/+MefPmITU1Ff/617+we/duREZGAgBmz56N7t2748yZM+bxR48ejejoaABAbGwsXn31VXTo0AEAMGbMGMybNw/Hjh1DWFgY1q1bh4ULF5rXnkmTJmH06NEAUOb5mjZtWuznmz17Nho2bIjY2Fjs2bMHK1euxG233QYAuO6669CrV69yHX/Hjh2w2+145ZVXoCgKWrRogczMTOi67ne+06dPAwCuuuoqXHXVVXj88cfRrl07WK1Wv+2OHDmCPXv2YMuWLWjZsiUAI4PgzjvvNHvZVFXFxIkTERcXh9atWyMhIQEHDx68iP+6RLWbL5CsV69eqdvl5eXh3nvvxYgRI2C32wEAgwYNwnvvvee3XeHr1apVqzBq1CjccccdAIysvAEDBpR6nsWLF+Pjjz8GALjdbiiKgrvuuguPPvqouU1Nvu58/fXXuP322xESEoJ58+ZBlmUkJSVBlmVce+21WLVqFdq0aQMAaNGihd/fBaXJy8sze/19bDYbPB4PAOPetLT1RBeLgXYdsGXLFiiKYt70tW/fHo0bN8a6devQs2dPWCwWCCGK3VfXdbMARv369Yt9alkeDRs2xPLlyyGEwMGDBzFjxgwMHToUd955p7lNREQEzp8/X+Ixzp49i/r16192W4io6pV1HerXr58ZaG/duhUdO3ZE06ZNsXPnTgghzJvQwo4fP25mtVx11VXm8p49e2LXrl2YNWsWfvvtN7M4oq7r+O233+D1ev16pgo/BDx69Gip5ysu0L7mmmvQsGFD8/3111+PTz75xHxfuDhQWcf/9ddf0bp1a7/emPvvvx8A/KoQ33rrrejUqRPuuecexMbGonv37rj33nsREhLid8zffvsNdrvdvNkFjBvTiIgIHD161Lym+m76ASAsLKzMCsNEdYnvz0lWVlap24WGhmLEiBFYv349Dh06ZF5/fMGtT+Hr1dGjRzFmzBjzfWxsbJH09AsNHToUDz30EADAarWiYcOGRQLEmnzdOXr0KFq1agUA2Lx5M4YOHeqXwRgcHIzrrrsOAOBwOIqcvyRBQUFFgmaPx4Pg4OByrSe6WAy06wBfemaXLl3MZbqu46uvvkJ6ejrCw8OLHX8ohEBOTg7Cw8MBAO3atcOiRYsghIAkSX7bfvXVV1i/fj1ef/31Ik82AUCWZcTExAAwUrtlWca4cePQtGlT9OnTBwDQoUMHLFq0CB6Pp8hfGEIIHD58GLfccstlt4WIql5Z16H+/ftjwYIFyMjIwNatWzF48GAARlpkaGgo1q1bV+SYjRo1MntACt+YzpkzBytXrsSQIUNw991345VXXjFTKn0PDgs/XCz8uqzzFefCaryapvndFBa+npV1fN94x7KEhITgww8/xN69e7Fz505s3boVn3zyCZYvX46wsLBiz31hGwv3Vl14rSzp4StRXRQdHY3IyEgcPHgQN9xwQ5H1zz77LO666y507doV9957LyIiItCzZ0/cdddd+O2334pUA78wkL7wz1tJQ+h8wsPDzXuqktTk6052drb5oCA1NRXXXnutuY3D4cDJkyfRtm1bAMC3336L9u3bl6v9TZo0wblz5/yWnT9/3ry2N2nSpEiHT+H1RBeLY7RruePHj+PQoUOYMGEC1q1bZ/6899578Hq92Lx5M+Li4nD8+HEzLdvnyJEjcLlc5lPDvn37wuFwYP369X7b6bqOxYsXIzMzs9yBbf/+/XHHHXcgKSnJDPIHDBgAj8eDZcuWFdl+y5Yt+O2338ziSBXZFiKqXOW5DjVv3hyxsbH4/PPPceTIEfMBXPPmzZGbmwtN0xATE2PeXL722mslFihbsWIFJk2ahBdeeAH9+/dHXl4eAOMmLjo6GlarFYcPHza3P3TokPn6Us538uRJv3WHDh1CXFxcsduWdfyYmBikpKT43YxOmDAB77zzjt9x9u3bh/nz56Nz58544YUX8MUXX6Bhw4b45ptv/LZr0aIFnE4njh49ai779ddf4XA4WMuCqJwURUH//v3xySefFOnx3L17N7744gvUr18fe/bswR9//IFly5Zh9OjRuOWWW/D777+X+uCqVatWfkM1Tpw4gdzc3Aptf0277kRGRpoBsd1u9wt+lyxZAkmScO211yInJwfz5s3DqFGjyvU9tG/fHvv27TP/ewghsG/fPnOYUfv27bF3715z+zNnzuD333831xNdLAbatdymTZsQHh6O4cOHIzY21vy57bbb0LFjR6xduxbx8fGIi4vDM888g//+9784efIkvv76a7zwwgsYMGAAmjRpAgC44oor8Le//Q2TJ0/GkiVLcPz4cRw8eBDPPfccDh8+fNHzSL788svIzs7GP/7xDwBGwYmkpCS8/fbbeOedd3D06FGcOHECS5cuxcsvv4znnnvOvHmt6LYQUeUpz3UIgNmrfdNNN5mp2C1btkRCQgJefPFF7N+/H0eOHMH48eORlpZWpGiNT2RkJHbu3ImTJ09i7969ZgEej8cDu92OwYMH47XXXkNycjKSk5Px6quvAjAq0F7K+fLy8jBlyhQcPXoUq1atwtatWzFy5Mhity3r+AMHDoTT6cTMmTNx7NgxbNq0CZs2bUJCQoLfcYKDgzF//nysWLECp06dwo4dO3DmzBlcf/31ftu1aNECd9xxB8aPH48DBw7gwIEDZuVh30NUIirbU089BbfbjYcffhi7d+9Gamoq1q5di2effRaDBw9Gp06dEBkZiby8PPzrX//CqVOn8Pnnn2P58uWljvEdOXIkPvnkE3zxxRf45ZdfMGnSpGILvV6OmnbdadOmDX744QcAQJ8+fTB//nzs2LEDc+bMweLFi2G1WvHNN99g1KhRuPXWW4u0syR9+/ZFbm4upk+f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EREROZx2KdqnTp3Ck08+CQB45JFHcPbs2UbXP/jgg7h+/Tq0Wi1EBCqVCmPHjsWYMWOs+2g0mvaYGhERERG1orWzE/fv3493330XGo0G/fv3R3JyMtRqNZ577jkYjUYAgJ+fH/785z8r9RCIiBTVLkW7srISHh4e1ssajQZ1dXXQam/d3QMPPIDJkyfD1dUVoaGh8PT0bDQ2Li4O8fHx7TE1IiIiImpFS2cn1tTU4K9//Sv27dsHV1dXJCQkIDs7G7///e8B3PpaIiKizq5diraHhweqqqqsly0Wi7Vk5+XlIScnB59++inc3NywYMECHDx4EOPGjcOVK1cwb948REVFYcKECa3ej0ajgY+PT4v7aLXaVveh9sG1V05OTg60Wi3q6uqUngoRkd1lZWXBx8cHV69eVXoqTqulsxP1ej3ee+89uLq6AgDq6upgMBiQl5eH6upqxMTEoK6uDgkJCXjkkUcUmT+Ro2POOb52KdpDhw5FdnY2wsLCcPr0afTv3996ndFohIuLCwwGAzQaDby9vVFRUYHS0lLExMQgKSkJwcHBbbofs9nc6h8f/0CVw7VXVlvWv3v37h00GyIiciQtnZ2oVqvh6+sL4NbR6xs3biAkJATnzp3DrFmzEBERgQsXLmD27Nn4+OOPrQdbbOGBk7sb1145XHvH1i5FOzQ0FMeOHcPUqVMhIli9ejX27duHGzduIDIyEpGRkYiKioJOp0PPnj0xadIkpKWloaKiAps3b8bmzZsBAG+88QZcXFzaY4pEREREZENLZyfWX163bh0KCgqwadMmqFQq9O7dGwEBAdbfvby8UFJS0uqLujxwcnfj2iunrWvPAyd3p3Yp2mq1GikpKY229e3b1/r7tGnTMG3atEbXL1u2DMuWLWuP6RARERHRbWjp7EQASEpKgl6vx+bNm6FWqwEAmZmZOHfuHJKTk1FcXIzKykp069ZNiekTESmuXYo2ERERETmuls5OHDx4MDIzMxEUFIQZM2YAAKKjoxEeHo7Fixdj2rRpUKlUWL16daunjRMROSumHxERERE10trZiXl5ec2O+8tf/tKu8yIichRqpSdARERERERE5ExYtImIiIiIiIjsiEWbiIiIiIiIyI5YtImIiIiIiIjsSCUiovQkiIiIiIiIiJwFj2gTERERERER2RGLNhEREREREZEdsWgTERERERER2RGLNhEREREREZEdsWgTERERERER2RGLNhEREREREZEdaZWewO26efMmlixZgqKiIphMJsydOxf33XcfYmNj0atXLwDAtGnTEBYWBgCYM2cO/va3vzUZM2rUKFy8eBGLFi2CSqXCAw88gNdeew1qNV97aMlzzz0Ho9EIAPDz80NsbKzNNeTa28dXX32F9evXY/v27TbXLSMjA++99x60Wi3mzp2LkSNHAgDOnj2LI0eOIDQ0FCtXroRGo4Fer8fatWvh6+trcxwpizmnLOZcx2POdT7MOWUx5zoec64TEgeTmZkpqampIiJSVlYmI0aMkIyMDHnrrbea7FtUVCQrVqxodoyIyJw5cyQ3N1dERJYvXy6HDh3qmAfhoGpqauTZZ59ttM3WGnLt7SM9PV2eeeYZiYiIEJHm1+3HH3+UZ555Rmpra6WiosL6u4jIpk2b5KuvvpLnn39evvnmGxER2bVrl6xevbrFcaQs5pxymHMdjznXOTHnlMOc63jMuc7J4V5yGjt2LObPn2+9rNFocPbsWeTk5OD555/HkiVLUFlZCQDIzs7GiBEjmh0DAF9//TUef/xxAMDw4cNx/PjxDnwkjicvLw/V1dWIiYlBdHQ0Tp8+bXMNufb20bNnT2zatMl6ubl1O3PmDIYMGQK9Xg+j0YiePXsiLy8PwK1XQB9++GFs2LABAwcOBACYzWYYDIYWx5GymHPKYc51POZc58ScUw5zruMx5zonhyva7u7u8PDwQGVlJeLi4hAfH4/AwEC8+uqr2LlzJ/z9/fH6668DAE6ePIknnnii2TEAICJQqVTW271+/bpij8sRuLi4YNasWXjrrbewYsUKJCYm2lxDrr19jBkzBlrtL+/waG7dKisrrad/1W+vrKxESUkJfH19oVKpcM899wAAvvzyS+zYsQMzZ860OY6Ux5xTDnOu4zHnOifmnHKYcx2POdc5OVzRBoArV64gOjoazz77LCZMmIDQ0FAMHjwYABAaGopvvvkG1dXV0Gg0MBgMzY4B0Og9JFVVVfD09Oz4B+NAevfujYkTJ0KlUqF3797w8vLC1atXrdfXryHXvv00t24eHh6oqqpqtN1oNCInJwcjRoywbv/oo4/w2muvIT09Hd7e3jbH0d2BOacM5pzymHOdB3NOGcw55THnOgeHK9qlpaWIiYnBggULEB4eDgCYNWsWzpw5AwA4ceIEBg0ahGPHjiE4ONjmGAB46KGHcPLkSQDAv//9bwQFBXXwo3EsmZmZWLNmDQCguLgYlZWVCAkJabKGXPv209y6BQYG4tSpU6itrcX169eRn5+P/v374/jx4xg2bBgA4IMPPsCOHTuwfft2+Pv7A4DNcaQ85pxymHPKY851Dsw55TDnlMec6xxUIiJKT+J2pKam4uDBg+jTp491W3x8PNatWwedTgdfX1+sXLkSaWlpmDdvHu69995mx7zxxhu4cuUKli9fjps3b6JPnz5ITU21vueEmjKZTFi8eDEuX74MlUqFxMREdO3atckarlixgmtvR5cuXUJCQgIyMjJQUFDQ7LplZGRg9+7dEBHMmTMHI0eORGJiIjZu3Aiz2Yzg4GB0797d+krzY489hri4uCbjxowZo/CjJYA5pyTmnDKYc50Pc045zDllMOc6H4cr2kRERERERER3M4c7dZyIiIiIiIjobsaiTURERERERGRHLNpEREREREREdsSiTURERERERGRHLNpEREREREREdsSi/SsnT55EUFAQrly5Yt22fv167Nmz545v89KlS5gyZYo9pteE2WzGrFmzMG3aNFy7ds26/bvvvsPnn3/eLvdZVlaGxYsXY9OmTRg4cCCKi4ut1129ehWDBg267fVKT0+3fndmR9ixY0e73XZISMhtj7l8+TKOHDkCAJg+fTry8/PtPS0iK+Zc65hzLWPO0d2OOdc65lzLmHP0W7FoN0On02Hx4sVwhG8+KykpQXl5OXbt2oUuXbpYtx86dAjnz59vl/v87LPPMHz4cABAr169cPDgQet1H330Ebp3737bt/nSSy8hMDDQbnNszZYtWzrsvtoiNzcXX375pdLToE6EOdcy5pz9MeeoozHnWsacsz/mHDWkVXoCd6MnnngCFosFO3fuxAsvvGDd3vCL5gFgypQp2LBhA/bu3YuLFy+ivLwc165dQ1RUFA4dOoSCggKsXbsWvr6+KCsrQ2xsLMrKyjBixAjMmzcPV65cwfLly1FbWwuDwYCVK1fCbDZj7ty58PLywvDhwzF79mzr/X/44Yd49913odfr0atXL6SkpGD58uW4cOECkpKSkJKSAgAoLi7G3r17odPpMGjQICxZsgS9evWCXq/HihUrsHTpUpSXlwMAli1bhgcffBAHDx7EO++8A7VajUcffRSJiYk4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\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "performances_df_rf_fixed_max_tree_depth=performances_df_rf[performances_df_rf[\"Parameters summary\"].str.endswith(\"20\")]\n",
    "\n",
    "summary_performances_fixed_max_tree_depth=get_summary_performances(performances_df_rf_fixed_max_tree_depth, parameter_column_name=\"Parameters summary\")\n",
    "\n",
    "get_performances_plots(performances_df_rf_fixed_max_tree_depth, \n",
    "                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'], \n",
    "                       expe_type_list=['Test','Validation'], expe_type_color_list=['#008000','#FF0000'],\n",
    "                       parameter_name=\"Number of trees/Maximum tree depth\",\n",
    "                       summary_performances=summary_performances_fixed_max_tree_depth)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For all performance metrics, the common trend is an increase in performances as the number of trees is increased. The added performance gains however decrease with the number of added trees. \n",
    "\n",
    "It is worth noting that the execution times for training random forests linearly increases with the number of trees. This can be illustrated by plotting the execution times as a function of the number of trees."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "# Get the performance plot for a single performance metric\n",
    "def get_execution_times_plot(performances_df,\n",
    "                             title=\"\",\n",
    "                             parameter_name=\"Tree maximum depth\"):\n",
    "    \n",
    "    fig, ax = plt.subplots(1,1, figsize=(5,4))\n",
    "    \n",
    "    # Plot data on graph\n",
    "    ax.plot(performances_df['Parameters summary'], performances_df[\"Execution time\"], \n",
    "            color=\"black\")\n",
    "        \n",
    "    # Set title, and x and y axes labels\n",
    "    ax.set_title(title, fontsize=14)\n",
    "    ax.set(xlabel = parameter_name, ylabel=\"Execution time (seconds)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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oE+fPuzfv5+///6b8ePH07ZtW5o3b87Ro0cBGD16ND179uT27dt6p3tt8eLFPH78mKlTp1K7dm02b95MYmIio0aN4tGjR8m2w9OnT3Vus9c0Gg1ff/01165do3z58rx8+RIgxfb98ssvKVmyJPfv36dly5aMGjWKwMBAXrx4Qb169QD47rvvePjwIbGxsfj6+mqfLMnx3me3QyJtjh8/rtzc3FRUVJRq06aNunHjhvL29labN29WYWFh2u6blFLKzs5OhYWFqYULF6pJkyYppZQKCAhQo0aNUkr9r3u3sLAw1bRpU/XkyROVkJCgHBwc1KVLl9SXX36pDh48qJRS6vfff1djxoxRYWFhqkmTJsm6b4qKilJt27ZVT58+VUopNWvWLBUUFJSsptcWLlyo1q1bp5RSqnXr1urixYtKKaXmzZun1q5dq5RS6saNG6pnz54qOjpadejQQT1//lwppdTYsWPVkSNH1Jw5c1RgYKDSaDRq79696vbt2+rly5dq+PDhSZbRr18/9c8//6ibN28qDw+PJNsrODhYKfWqu7PGjRsrpZR6/PixsrW1VSNGjFDr169XSik1YcIE9dtvv6nNmzcrFxcXpZRSP/30k+rRo4dKTExUx44dU0OHDlVKKdWsWTPterq5uanjx4+naro3vZ7H5s2b1ZAhQ5RSKsXtoGubvenAgQNqzJgxSqlXXbXVrFlTKaXe2r7R0dEqISFB2dvbqz///FNt3rxZeXt7K6WU6t27t9q2bZt2GwcGBiarP6eSPcdMoGjRokycOBF3d3fq16+v8zPqjcNuS0tLAAoWLMhHH30EQOHChYmLiwOgevXq2gfra9WqxY0bN7h69SoBAQEsW7YMpRQmJibAq05kTU1NkywrLCyMjz76iAIFCgCvHsE6cuQIn376aarWp3LlygBcvXqV48ePaw+Fnzx5wj///ENUVBSDBg0CXnUCEBYWxpAhQ1iyZAl9+/alVKlS1K5dm1OnTiV7DtrW1padO3eSkJBA586dtXt1RYoU4cKFCxw/fpwCBQpo96gKFSpEly5dWLlyJT4+Pslqfd29VcGCBalSpQpGRkZJtuWb3myDtEyna9uktB10bbM3/f3339pTAmXLltWeVkipfatXr06RIkWAV88Y37hxI1lNrztyKVGiBA8fPnxr/TmJhGMmYW1tzd69e9m6dSvjxo3DzMyMyMhINBoNz549Izw8XPvZ1105pSQ0NJRnz55p+7JzcHDA3Nyc/v37U79+fUJDQ7UXUHT1iP3hhx8SGhrK8+fPyZcvHydOnND+UetiZGREYmKi9vfX8zQ3N6dLly507tyZyMhINm3axIcffkiZMmVYsWIFJiYmbNmyhRo1arBjxw66devGhAkTCAgIIDg4mCdPnuDo6JhkWTY2NvTv35/8+fMzbNgwbThu2bKFggULMn36dG7dukVwcDBKKcLDw9m5cyfOzs7MnTsXT0/PZLW/TUJCAs+ePcPExCTJeVV9073pzVB9vW1S2g43btxIts3eZG5uzs6dO+nbty/379/XXqBKqX1DQ0OJjY3F1NSU8+fP88UXX3D58uUk7SV0k3DMRCZNmsTx48cBKFmyJM2bN6dHjx5UqFCBihUrpno+hQsXZvTo0URFRdGxY0c++ugjJkyYTlBVJwAAAU5JREFUwNSpU4mLi+PFixdMmjQpxemLFSvGyJEj6dOnD7ly5aJChQqMHTuWBw8e6Pz8xx9/zLx586hSpUqS14cMGcKkSZMIDg4mJiaGESNGUKxYMfr164ezszMajYZy5crRoUMHXr58ibu7O/ny5cPExITp06czc+ZM7XAYrxUsWJDSpUtTvnz5JMHetGlTxowZw+nTp8mbNy8VK1bkzp07jB07lsmTJ9OwYUP69evHvn37Ur0dAfr06YODgwMffvghZcuWTdO0r1WpUoWxY8dqe44BUtwOurbZm9q2bcvp06exs7OjbNmyFC1aFCDF9jUxMeHLL7/k4cOHfPbZZ1SvXp3ExEQWL15MzZo132l9cgrpeEKIbOrfF/VE2sitPEIIoYPsOQohhA6y5yiEEDpIOAohhA4SjkIIoYOEoxBC6CDhKIQQOkg4CiGEDv8Hbyh69Qs66cQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_execution_times_plot(performances_df_rf_fixed_max_tree_depth, \n",
    "                         title=\"Execution times with varying \\n number of trees\",\n",
    "                         parameter_name=\"Number of trees/Maximum tree depth\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The execution times also increases with the maximum tree depth, as illustrated below. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_execution_times_plot(performances_df_rf_fixed_number_of_trees, \n",
    "                         title=\"Execution times with varying \\n maximum tree depth\",\n",
    "                         parameter_name=\"Number of trees/Maximum tree depth\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All in all, the model selection procedure above took about 10 minutes to complete on one core, although only a small number of parameter combinations were tested (12 in total: 4 different parameters for the maximum tree depth, and 3 different parameters for the number of trees)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total execution time for the model selection procedure: 586.96s\n"
     ]
    }
   ],
   "source": [
    "print(\"Total execution time for the model selection procedure: \"+str(round(execution_time_rf,2))+\"s\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This toy example illustrates the trade-off between performance and computation times in the search for optimal parameters. Computational resources are usually constrained, and one must carefully consider which hyperparameter combinations can be tested given the available resources. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Model_Selection_XGBoost)=\n",
    "### XGBoost\n",
    "\n",
    "XGBoost is a powerful learning algorithm whose tuning however relies [on many hyperparameters](https://xgboost.readthedocs.io/en/latest/python/python_api.html). The most important ones are arguably the tree maximum depth (`max_depth`), the number of trees (`n_estimators`), and the learning rate (`learning_rate`). By default, the maximum tree depth is set to 6, the number of trees to 100, and the learning rate to 0.3. Let us try other combinations, with `max_depth` in the set [3,6,9], `n_estimators` in the set [25,10,100], and `learning_rate` in the set [0.1, 0.3]."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "classifier = xgboost.XGBClassifier()\n",
    "\n",
    "parameters = {'clf__max_depth':[3,6,9], 'clf__n_estimators':[25,50,100], 'clf__learning_rate':[0.1, 0.3],\n",
    "              'clf__random_state':[0], 'clf__n_jobs':[1], 'clf__verbosity':[0]}\n",
    "\n",
    "start_time=time.time()\n",
    "\n",
    "performances_df=model_selection_wrapper(transactions_df, classifier, \n",
    "                                        input_features, output_feature,\n",
    "                                        parameters, scoring, \n",
    "                                        start_date_training_for_valid,\n",
    "                                        start_date_training_for_test,\n",
    "                                        n_folds=n_folds,\n",
    "                                        delta_train=delta_train, \n",
    "                                        delta_delay=delta_delay, \n",
    "                                        delta_assessment=delta_assessment,\n",
    "                                        performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                                        performance_metrics_list=performance_metrics_list,\n",
    "                                        n_jobs=1)\n",
    "\n",
    "execution_time_boosting = time.time()-start_time\n",
    "\n",
    "parameters_dict=dict(performances_df['Parameters'])\n",
    "performances_df['Parameters summary']=[str(parameters_dict[i]['clf__n_estimators'])+\n",
    "                                   '/'+\n",
    "                                   str(parameters_dict[i]['clf__learning_rate'])+\n",
    "                                   '/'+\n",
    "                                   str(parameters_dict[i]['clf__max_depth'])\n",
    "                                   for i in range(len(parameters_dict))]\n",
    "\n",
    "# Rename to performances_df_xgboost for model performance comparison at the end of this notebook\n",
    "performances_df_xgboost=performances_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC Test</th>\n",
       "      <th>AUC ROC Test Std</th>\n",
       "      <th>Average precision Test</th>\n",
       "      <th>Average precision Test Std</th>\n",
       "      <th>Card Precision@100 Test</th>\n",
       "      <th>Card Precision@100 Test Std</th>\n",
       "      <th>Parameters</th>\n",
       "      <th>Execution time</th>\n",
       "      <th>AUC ROC Validation</th>\n",
       "      <th>AUC ROC Validation Std</th>\n",
       "      <th>Average precision Validation</th>\n",
       "      <th>Average precision Validation Std</th>\n",
       "      <th>Card Precision@100 Validation</th>\n",
       "      <th>Card Precision@100 Validation Std</th>\n",
       "      <th>Parameters summary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.833094</td>\n",
       "      <td>0.012257</td>\n",
       "      <td>0.635603</td>\n",
       "      <td>0.022225</td>\n",
       "      <td>0.296071</td>\n",
       "      <td>0.014859</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>2.740516</td>\n",
       "      <td>0.825157</td>\n",
       "      <td>0.009026</td>\n",
       "      <td>0.617990</td>\n",
       "      <td>0.025069</td>\n",
       "      <td>0.278214</td>\n",
       "      <td>0.015563</td>\n",
       "      <td>25/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.864766</td>\n",
       "      <td>0.006604</td>\n",
       "      <td>0.666130</td>\n",
       "      <td>0.012722</td>\n",
       "      <td>0.301429</td>\n",
       "      <td>0.013439</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>4.426460</td>\n",
       "      <td>0.863627</td>\n",
       "      <td>0.003203</td>\n",
       "      <td>0.651369</td>\n",
       "      <td>0.030279</td>\n",
       "      <td>0.280714</td>\n",
       "      <td>0.014932</td>\n",
       "      <td>50/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.870792</td>\n",
       "      <td>0.012352</td>\n",
       "      <td>0.694030</td>\n",
       "      <td>0.008394</td>\n",
       "      <td>0.303929</td>\n",
       "      <td>0.012305</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>7.717508</td>\n",
       "      <td>0.878438</td>\n",
       "      <td>0.009221</td>\n",
       "      <td>0.705235</td>\n",
       "      <td>0.019756</td>\n",
       "      <td>0.288214</td>\n",
       "      <td>0.015694</td>\n",
       "      <td>100/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.835862</td>\n",
       "      <td>0.012705</td>\n",
       "      <td>0.638601</td>\n",
       "      <td>0.025984</td>\n",
       "      <td>0.297500</td>\n",
       "      <td>0.014928</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>4.346976</td>\n",
       "      <td>0.843097</td>\n",
       "      <td>0.014918</td>\n",
       "      <td>0.640099</td>\n",
       "      <td>0.026283</td>\n",
       "      <td>0.278571</td>\n",
       "      <td>0.015551</td>\n",
       "      <td>25/0.1/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.871589</td>\n",
       "      <td>0.014202</td>\n",
       "      <td>0.686221</td>\n",
       "      <td>0.012026</td>\n",
       "      <td>0.301786</td>\n",
       "      <td>0.009603</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>8.303945</td>\n",
       "      <td>0.869654</td>\n",
       "      <td>0.002863</td>\n",
       "      <td>0.699780</td>\n",
       "      <td>0.016875</td>\n",
       "      <td>0.288214</td>\n",
       "      <td>0.016884</td>\n",
       "      <td>50/0.1/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.871278</td>\n",
       "      <td>0.011437</td>\n",
       "      <td>0.685991</td>\n",
       "      <td>0.008947</td>\n",
       "      <td>0.298571</td>\n",
       "      <td>0.010351</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>17.992388</td>\n",
       "      <td>0.881340</td>\n",
       "      <td>0.004587</td>\n",
       "      <td>0.706922</td>\n",
       "      <td>0.017461</td>\n",
       "      <td>0.286429</td>\n",
       "      <td>0.017217</td>\n",
       "      <td>100/0.1/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.852550</td>\n",
       "      <td>0.003171</td>\n",
       "      <td>0.656631</td>\n",
       "      <td>0.012632</td>\n",
       "      <td>0.302857</td>\n",
       "      <td>0.012164</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>4.437036</td>\n",
       "      <td>0.854345</td>\n",
       "      <td>0.008599</td>\n",
       "      <td>0.656910</td>\n",
       "      <td>0.023964</td>\n",
       "      <td>0.281429</td>\n",
       "      <td>0.012817</td>\n",
       "      <td>25/0.1/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.867596</td>\n",
       "      <td>0.016111</td>\n",
       "      <td>0.681919</td>\n",
       "      <td>0.011871</td>\n",
       "      <td>0.300000</td>\n",
       "      <td>0.009949</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>9.128478</td>\n",
       "      <td>0.875070</td>\n",
       "      <td>0.006199</td>\n",
       "      <td>0.700656</td>\n",
       "      <td>0.018366</td>\n",
       "      <td>0.285714</td>\n",
       "      <td>0.015779</td>\n",
       "      <td>50/0.1/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.862519</td>\n",
       "      <td>0.007472</td>\n",
       "      <td>0.674149</td>\n",
       "      <td>0.007838</td>\n",
       "      <td>0.293929</td>\n",
       "      <td>0.012428</td>\n",
       "      <td>{'clf__learning_rate': 0.1, 'clf__max_depth': ...</td>\n",
       "      <td>18.618342</td>\n",
       "      <td>0.879667</td>\n",
       "      <td>0.003782</td>\n",
       "      <td>0.700592</td>\n",
       "      <td>0.017885</td>\n",
       "      <td>0.285000</td>\n",
       "      <td>0.017394</td>\n",
       "      <td>100/0.1/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.870988</td>\n",
       "      <td>0.014197</td>\n",
       "      <td>0.678544</td>\n",
       "      <td>0.012501</td>\n",
       "      <td>0.303214</td>\n",
       "      <td>0.012592</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>1.809805</td>\n",
       "      <td>0.877231</td>\n",
       "      <td>0.006120</td>\n",
       "      <td>0.698490</td>\n",
       "      <td>0.022835</td>\n",
       "      <td>0.288929</td>\n",
       "      <td>0.015131</td>\n",
       "      <td>25/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.871726</td>\n",
       "      <td>0.010990</td>\n",
       "      <td>0.686534</td>\n",
       "      <td>0.011086</td>\n",
       "      <td>0.302143</td>\n",
       "      <td>0.013458</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>3.290658</td>\n",
       "      <td>0.882839</td>\n",
       "      <td>0.008380</td>\n",
       "      <td>0.708226</td>\n",
       "      <td>0.020697</td>\n",
       "      <td>0.287500</td>\n",
       "      <td>0.016331</td>\n",
       "      <td>50/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.869414</td>\n",
       "      <td>0.009418</td>\n",
       "      <td>0.684661</td>\n",
       "      <td>0.008058</td>\n",
       "      <td>0.298571</td>\n",
       "      <td>0.011203</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>6.179205</td>\n",
       "      <td>0.886993</td>\n",
       "      <td>0.008474</td>\n",
       "      <td>0.706116</td>\n",
       "      <td>0.020094</td>\n",
       "      <td>0.286071</td>\n",
       "      <td>0.014756</td>\n",
       "      <td>100/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0.868900</td>\n",
       "      <td>0.010737</td>\n",
       "      <td>0.682132</td>\n",
       "      <td>0.008824</td>\n",
       "      <td>0.299286</td>\n",
       "      <td>0.011974</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>3.157807</td>\n",
       "      <td>0.880707</td>\n",
       "      <td>0.005706</td>\n",
       "      <td>0.703211</td>\n",
       "      <td>0.016174</td>\n",
       "      <td>0.285000</td>\n",
       "      <td>0.015336</td>\n",
       "      <td>25/0.3/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0.867046</td>\n",
       "      <td>0.011363</td>\n",
       "      <td>0.673906</td>\n",
       "      <td>0.007436</td>\n",
       "      <td>0.293929</td>\n",
       "      <td>0.009968</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>6.032546</td>\n",
       "      <td>0.879301</td>\n",
       "      <td>0.008605</td>\n",
       "      <td>0.697563</td>\n",
       "      <td>0.016872</td>\n",
       "      <td>0.283571</td>\n",
       "      <td>0.016614</td>\n",
       "      <td>50/0.3/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0.859138</td>\n",
       "      <td>0.004852</td>\n",
       "      <td>0.659458</td>\n",
       "      <td>0.012488</td>\n",
       "      <td>0.285357</td>\n",
       "      <td>0.010369</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>11.699445</td>\n",
       "      <td>0.878025</td>\n",
       "      <td>0.007150</td>\n",
       "      <td>0.691442</td>\n",
       "      <td>0.016375</td>\n",
       "      <td>0.279643</td>\n",
       "      <td>0.013567</td>\n",
       "      <td>100/0.3/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0.863341</td>\n",
       "      <td>0.007757</td>\n",
       "      <td>0.675966</td>\n",
       "      <td>0.008870</td>\n",
       "      <td>0.294286</td>\n",
       "      <td>0.011995</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>4.462973</td>\n",
       "      <td>0.876948</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.699722</td>\n",
       "      <td>0.017653</td>\n",
       "      <td>0.283571</td>\n",
       "      <td>0.015924</td>\n",
       "      <td>25/0.3/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0.859114</td>\n",
       "      <td>0.003609</td>\n",
       "      <td>0.660666</td>\n",
       "      <td>0.008002</td>\n",
       "      <td>0.288214</td>\n",
       "      <td>0.008943</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>8.684047</td>\n",
       "      <td>0.876392</td>\n",
       "      <td>0.006354</td>\n",
       "      <td>0.692759</td>\n",
       "      <td>0.017801</td>\n",
       "      <td>0.280357</td>\n",
       "      <td>0.014441</td>\n",
       "      <td>50/0.3/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0.860454</td>\n",
       "      <td>0.002511</td>\n",
       "      <td>0.658901</td>\n",
       "      <td>0.010897</td>\n",
       "      <td>0.286786</td>\n",
       "      <td>0.009056</td>\n",
       "      <td>{'clf__learning_rate': 0.3, 'clf__max_depth': ...</td>\n",
       "      <td>17.091203</td>\n",
       "      <td>0.879577</td>\n",
       "      <td>0.006008</td>\n",
       "      <td>0.690895</td>\n",
       "      <td>0.016712</td>\n",
       "      <td>0.278571</td>\n",
       "      <td>0.015286</td>\n",
       "      <td>100/0.3/9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    AUC ROC Test  AUC ROC Test Std  Average precision Test  \\\n",
       "0       0.833094          0.012257                0.635603   \n",
       "1       0.864766          0.006604                0.666130   \n",
       "2       0.870792          0.012352                0.694030   \n",
       "3       0.835862          0.012705                0.638601   \n",
       "4       0.871589          0.014202                0.686221   \n",
       "5       0.871278          0.011437                0.685991   \n",
       "6       0.852550          0.003171                0.656631   \n",
       "7       0.867596          0.016111                0.681919   \n",
       "8       0.862519          0.007472                0.674149   \n",
       "9       0.870988          0.014197                0.678544   \n",
       "10      0.871726          0.010990                0.686534   \n",
       "11      0.869414          0.009418                0.684661   \n",
       "12      0.868900          0.010737                0.682132   \n",
       "13      0.867046          0.011363                0.673906   \n",
       "14      0.859138          0.004852                0.659458   \n",
       "15      0.863341          0.007757                0.675966   \n",
       "16      0.859114          0.003609                0.660666   \n",
       "17      0.860454          0.002511                0.658901   \n",
       "\n",
       "    Average precision Test Std  Card Precision@100 Test  \\\n",
       "0                     0.022225                 0.296071   \n",
       "1                     0.012722                 0.301429   \n",
       "2                     0.008394                 0.303929   \n",
       "3                     0.025984                 0.297500   \n",
       "4                     0.012026                 0.301786   \n",
       "5                     0.008947                 0.298571   \n",
       "6                     0.012632                 0.302857   \n",
       "7                     0.011871                 0.300000   \n",
       "8                     0.007838                 0.293929   \n",
       "9                     0.012501                 0.303214   \n",
       "10                    0.011086                 0.302143   \n",
       "11                    0.008058                 0.298571   \n",
       "12                    0.008824                 0.299286   \n",
       "13                    0.007436                 0.293929   \n",
       "14                    0.012488                 0.285357   \n",
       "15                    0.008870                 0.294286   \n",
       "16                    0.008002                 0.288214   \n",
       "17                    0.010897                 0.286786   \n",
       "\n",
       "    Card Precision@100 Test Std  \\\n",
       "0                      0.014859   \n",
       "1                      0.013439   \n",
       "2                      0.012305   \n",
       "3                      0.014928   \n",
       "4                      0.009603   \n",
       "5                      0.010351   \n",
       "6                      0.012164   \n",
       "7                      0.009949   \n",
       "8                      0.012428   \n",
       "9                      0.012592   \n",
       "10                     0.013458   \n",
       "11                     0.011203   \n",
       "12                     0.011974   \n",
       "13                     0.009968   \n",
       "14                     0.010369   \n",
       "15                     0.011995   \n",
       "16                     0.008943   \n",
       "17                     0.009056   \n",
       "\n",
       "                                           Parameters  Execution time  \\\n",
       "0   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        2.740516   \n",
       "1   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        4.426460   \n",
       "2   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        7.717508   \n",
       "3   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        4.346976   \n",
       "4   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        8.303945   \n",
       "5   {'clf__learning_rate': 0.1, 'clf__max_depth': ...       17.992388   \n",
       "6   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        4.437036   \n",
       "7   {'clf__learning_rate': 0.1, 'clf__max_depth': ...        9.128478   \n",
       "8   {'clf__learning_rate': 0.1, 'clf__max_depth': ...       18.618342   \n",
       "9   {'clf__learning_rate': 0.3, 'clf__max_depth': ...        1.809805   \n",
       "10  {'clf__learning_rate': 0.3, 'clf__max_depth': ...        3.290658   \n",
       "11  {'clf__learning_rate': 0.3, 'clf__max_depth': ...        6.179205   \n",
       "12  {'clf__learning_rate': 0.3, 'clf__max_depth': ...        3.157807   \n",
       "13  {'clf__learning_rate': 0.3, 'clf__max_depth': ...        6.032546   \n",
       "14  {'clf__learning_rate': 0.3, 'clf__max_depth': ...       11.699445   \n",
       "15  {'clf__learning_rate': 0.3, 'clf__max_depth': ...        4.462973   \n",
       "16  {'clf__learning_rate': 0.3, 'clf__max_depth': ...        8.684047   \n",
       "17  {'clf__learning_rate': 0.3, 'clf__max_depth': ...       17.091203   \n",
       "\n",
       "    AUC ROC Validation  AUC ROC Validation Std  Average precision Validation  \\\n",
       "0             0.825157                0.009026                      0.617990   \n",
       "1             0.863627                0.003203                      0.651369   \n",
       "2             0.878438                0.009221                      0.705235   \n",
       "3             0.843097                0.014918                      0.640099   \n",
       "4             0.869654                0.002863                      0.699780   \n",
       "5             0.881340                0.004587                      0.706922   \n",
       "6             0.854345                0.008599                      0.656910   \n",
       "7             0.875070                0.006199                      0.700656   \n",
       "8             0.879667                0.003782                      0.700592   \n",
       "9             0.877231                0.006120                      0.698490   \n",
       "10            0.882839                0.008380                      0.708226   \n",
       "11            0.886993                0.008474                      0.706116   \n",
       "12            0.880707                0.005706                      0.703211   \n",
       "13            0.879301                0.008605                      0.697563   \n",
       "14            0.878025                0.007150                      0.691442   \n",
       "15            0.876948                0.004011                      0.699722   \n",
       "16            0.876392                0.006354                      0.692759   \n",
       "17            0.879577                0.006008                      0.690895   \n",
       "\n",
       "    Average precision Validation Std  Card Precision@100 Validation  \\\n",
       "0                           0.025069                       0.278214   \n",
       "1                           0.030279                       0.280714   \n",
       "2                           0.019756                       0.288214   \n",
       "3                           0.026283                       0.278571   \n",
       "4                           0.016875                       0.288214   \n",
       "5                           0.017461                       0.286429   \n",
       "6                           0.023964                       0.281429   \n",
       "7                           0.018366                       0.285714   \n",
       "8                           0.017885                       0.285000   \n",
       "9                           0.022835                       0.288929   \n",
       "10                          0.020697                       0.287500   \n",
       "11                          0.020094                       0.286071   \n",
       "12                          0.016174                       0.285000   \n",
       "13                          0.016872                       0.283571   \n",
       "14                          0.016375                       0.279643   \n",
       "15                          0.017653                       0.283571   \n",
       "16                          0.017801                       0.280357   \n",
       "17                          0.016712                       0.278571   \n",
       "\n",
       "    Card Precision@100 Validation Std Parameters summary  \n",
       "0                            0.015563           25/0.1/3  \n",
       "1                            0.014932           50/0.1/3  \n",
       "2                            0.015694          100/0.1/3  \n",
       "3                            0.015551           25/0.1/6  \n",
       "4                            0.016884           50/0.1/6  \n",
       "5                            0.017217          100/0.1/6  \n",
       "6                            0.012817           25/0.1/9  \n",
       "7                            0.015779           50/0.1/9  \n",
       "8                            0.017394          100/0.1/9  \n",
       "9                            0.015131           25/0.3/3  \n",
       "10                           0.016331           50/0.3/3  \n",
       "11                           0.014756          100/0.3/3  \n",
       "12                           0.015336           25/0.3/6  \n",
       "13                           0.016614           50/0.3/6  \n",
       "14                           0.013567          100/0.3/6  \n",
       "15                           0.015924           25/0.3/9  \n",
       "16                           0.014441           50/0.3/9  \n",
       "17                           0.015286          100/0.3/9  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "performances_df_xgboost"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `get_summary_performances` function gives the summary of the best parameters and corresponding performances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC</th>\n",
       "      <th>Average precision</th>\n",
       "      <th>Card Precision@100</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Best estimated parameters</th>\n",
       "      <td>100/0.3/3</td>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>25/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Validation performance</th>\n",
       "      <td>0.887+/-0.01</td>\n",
       "      <td>0.708+/-0.02</td>\n",
       "      <td>0.289+/-0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Test performance</th>\n",
       "      <td>0.869+/-0.01</td>\n",
       "      <td>0.687+/-0.01</td>\n",
       "      <td>0.303+/-0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal parameters</th>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>100/0.1/3</td>\n",
       "      <td>100/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal test performance</th>\n",
       "      <td>0.872+/-0.01</td>\n",
       "      <td>0.694+/-0.01</td>\n",
       "      <td>0.304+/-0.01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                AUC ROC Average precision Card Precision@100\n",
       "Best estimated parameters     100/0.3/3          50/0.3/3           25/0.3/3\n",
       "Validation performance     0.887+/-0.01      0.708+/-0.02       0.289+/-0.02\n",
       "Test performance           0.869+/-0.01      0.687+/-0.01       0.303+/-0.01\n",
       "Optimal parameters             50/0.3/3         100/0.1/3          100/0.1/3\n",
       "Optimal test performance   0.872+/-0.01      0.694+/-0.01       0.304+/-0.01"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summary_performances_xgboost=get_summary_performances(performances_df_xgboost, parameter_column_name=\"Parameters summary\")\n",
    "summary_performances_xgboost"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The best parameters obtained by validation are the same for ROC AUC, and slightly differ for the average precision and CP@100. The corresponding test performances are however on par.\n",
    "\n",
    "Let us plot the performances as a function of the maximum tree depth, for a number of trees set to 100. Increasing the maximum tree depth does not clearly affect the performances. It slightly increases performances for AUC ROC and AP, but slightly decreases it for CP@100."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9oAAAEmCAYAAACd2OgMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3xUVdrA8d+902fSQxF1AUESBWkBUVBQSChLKAoiAmZF113BRVfxZbGBigjWRRdBRcWCrJQFQYrgagDLiigLCCi4hhJKKOmZtElmzvvHkCEhIQkwyZDk+frhk+S2OTORw33uOed5NKWUQgghhBBCCCGEEH6hB7oBQgghhBBCCCFEfSKBthBCCCGEEEII4UcSaAshhBBCCCGEEH4kgbYQQgghhBBCCOFHEmgLIYQQQgghhBB+JIG2EEIIIYQQQgjhRxJoNyCrV68mOjqa+fPnl9k+e/ZsRo0aVeE5vXr1Yvny5WW2ffXVV9x111107dqV6667jvvuu4+ff/75rK+7fPlyoqOjy/xp3749/fv355///Ge54zdv3szYsWOJiYmha9euJCQksHHjxgqvfa5tEUIE1tn6IVG177//nujoaIqLiys97vDhw0RHR3Pw4MFaapkQDUN2djYvvPACsbGxdOzYkf79+zNv3jyKior89hrFxcVER0fz/fffV7g/ISGhzP1U27Zt6dWrFy+88IJf21Ei0P1OVlYWs2fP5pZbbqFz58507tyZ+Ph4/v73v3PixImznpeZmUmPHj3KtWfPnj2MHDmSjh07MmzYMH766acy+9euXUvfvn3p2LEj48ePJy0tza/vRzQsEmg3IKtXr6ZFixZ88skn532NBQsW8MADD9CzZ08WL17Mhx9+SGRkJGPGjKk0wG3cuDHffPON78/KlSuJjY3lmWeeYcuWLb7jVqxYwb333kvHjh1ZsmQJS5YsoVevXjz44IO88847fmmLECJw/NEPNVSdO3fmm2++wWg0Vnpcs2bN+Oabb7j88strqWVC1H+ZmZmMGDGCHTt2MH36dFavXs3EiRNZsGABjz32WK225a677vLdT23YsIGnn36aRYsWMW/ePL+/ViD7naSkJAYPHsyWLVv405/+xOLFi1mxYgUTJ07kf//7H0OHDuXHH38sd15WVhbjxo0rFyTn5eX57jGXL19Oly5duO+++3A6nQD89NNPPProo4wfP57FixfjdDr529/+5rf3IxogJRqEzMxM1a5dO7Vy5UoVFRWldu/e7dv3j3/8Q91xxx0VntezZ0+1bNkypZRSycnJql27duqTTz4pd1xCQoL64x//WOE1li1bpnr27Fnhvr59+6rnnntOKaXUiRMnVIcOHdTHH39c7rg1a9aotm3bql9//fWC2iKECJzK+iEhhLiYPfHEEyo+Pl4VFBSU2f7999+rqKgotX37dr+8TlFRkYqKilKbN2+ucP+dd96p/v73v5fbPmXKFDVkyBC/tOFikJqaqnr06KE++OCDsx7zr3/9S3Xv3l0dP37ct+2HH35Qffr0UYMHD1ZRUVHqwIEDvn1Lly5VN998s3K73UoppTwej+rbt69asmSJUkqpSZMmqUceecR3/NGjR8tdQ4hzISPaDcT69esxm80MHDiQli1blpsOXh2rV68mLCyMIUOGlNs3bdo0nnjiiXO+ptlsxmAwAPDpp58SFBTEiBEjyh1X0u5ly5bVWFuEEDXrbP3Qyy+/XG75yrx58xg+fDgAOTk5TJ48mS5dunDDDTcwZcoU3wjE999/T69evZg2bRpdunRh9uzZFBUV8cILL9CrVy/atWtH7969yyxTKSgo4IknnqBLly707NmTpUuX0rZtWw4fPlzl651p+fLl3H777cyaNYuYmBhuuukmFi1a5Nv/6KOPMnnyZG655Rauu+469u7dW+X1f/75Z+688046duxIbGws//rXv3zvtfQUzoULFxIbG0v79u0ZPHgwGzZsAMpP4czKymLKlCn06NGDmJgYHnnkETIzM8t8fosXL6ZXr15cd911TJo0iYKCgvP5FQtRL7lcLtasWcOYMWOwWCxl9nXr1o0PPviAqKgowDsKe++999K5c2fat2/PqFGj+N///gdU3F8BvP7663Tv3p3rr7/+vGf7GI1GzGYzUD/6nVmzZjFkyBD+8Ic/cOzYMcaNG0fnzp259957+fzzz+ncuTO33norsbGxvPfee77zvvvuO0aOHOn7bEvbsWMHMTEx6Lo3/NE0jZiYGLZt2+bbf+211/qOb9asGZdddplvvxDnSgLtBmLVqlX06tULo9FIbGwsq1evPue1PHv27OGaa67xdVCltWzZkiuuuKLa13K5XLzzzjv89ttv9OvXD4CdO3fSrl07X+B9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ImoHHKoD6c50szu5IilIwemtoR2M78F4H+1Z4nqJcDs9cEuR11wvij179jS43e9///tWHRdRVJ1u53RdN84Rb6xzOlB/RpzxN260SqLdVLmR0+mEzWaD1WqFoihITU1FeXn5GZUbdbT1ZWvnEpq8T0tmNuol8o3MyAevM783k8gHj90Fn9flcuFk2UlAMmZGHKoDdtUOi2IxGpYFZMADVNf+R5HVknOqeE4P0ekJLScv8ZSgwlsBt8/d5DbtaZaYiIjOQkOd02urfM3EPJiIB2fF63ZO143P45Ism9tS+9QqiXZzS99MnjwZeXl50DQNGRkZuO666wCA5UYREDor3RpOJ5FPSUyBw++AJmsd5pxGIuoYNFlD14SucCQ5UOQr4iwxERG1TLCM3GJpuDw9tGu6ywV4PFEYJEWCJIJ1vO2Q1+ttcsauqqoKaWlp8PAfaFS0+y6V7RxntOMD41xsY5yLnpbue8a52Mc4F9sY56KHca59i41OLq3E4XDA4XBEexhERK2GcY6I4h3jHBG1R3Fdm/3iiy8iISEBkyZNivZQiIhaBeMcEcU7xjkiao/iekY7Pz8fa9eujfYwiIhaDeMcEcU7xjkiao/iOtEmIiIiIiIiamtMtImIiIiIiIgiiIk2ERERERERUQQx0SYiIiIiIiKKoLjuOr527Vqu/UdEcY1xjojiHeMcEbVHnNEmIiIiIiIiiiAm2kREREREREQRxESbiIiIiIiIKIKYaBMRERERERFFEBNtIiIiIiIioghiok1EREREREQUQUy0iYiIiIiIiCKIiTYRERERERFRBDHRJiIiIiIiIoogSQghoj0IIiIiIiIionjBGW0iIiIiIiKiCGKiTURERERERBRBTLSJiIiIiIiIIoiJNhEREREREVEEMdEmIiIiIiIiiiAm2kREREREREQRFJOJ9jfffINp06YBAA4ePIipU6ciLy8Pjz/+OHRdBwCsXr0a119/PW644QZs3brV3Hb37t1YtmxZo9sFBQIBzJ07F1OmTMGNN96IQ4cOmbc9//zz2L59O9577z3k5uZi4sSJePPNN9vglceGWNn/u3btQl5eHqZOnYr77rsPNTU1bfDqoytW9v369esxfvx45OXldah/+20pVt7rjhjnYmXfd8QYB8TO/meca32x8l4zzjHOtaVY2feMcTFAxJiVK1eKcePGiUmT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\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "performances_df_xgboost_fixed_number_of_trees=performances_df_xgboost[performances_df_xgboost[\"Parameters summary\"].str.startswith(\"100/0.3\")]\n",
    "\n",
    "summary_performances_fixed_number_of_trees=get_summary_performances(performances_df_xgboost_fixed_number_of_trees, parameter_column_name=\"Parameters summary\")\n",
    "\n",
    "get_performances_plots(performances_df_xgboost_fixed_number_of_trees, \n",
    "                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'], \n",
    "                       expe_type_list=['Test','Validation'], expe_type_color_list=['#008000','#FF0000'],\n",
    "                       parameter_name=\"Number of trees/Maximum tree depth\",\n",
    "                       summary_performances=summary_performances_fixed_number_of_trees)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us then plot the performances as a function of the number of trees, for a maximum tree depth set to 5."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ciS2bNmCNWvWICkpCRMnTkSPHj3QvHnzMp2fqJDKXU2MKlv//v3F9OnTi9y3YcMGERMTI5KSkkRaWpqYPHmyuPPOO0WbNm3EPffcI9555x3hdDoLHbd582YxbNgwERcXJ7p27SrGjRsnkpKSiq1DSetoz58/X7Ru3Trg+F9++UWMHTtW3HrrrSIuLk48+OCDYufOnUUef7V1IaLKV9br0Llz50RsbKy+pqlfamqqmDBhgoiLixOdO3cWzz77rLh06ZIQQojdu3eLmJgY4Xa79fK//PKLuPfee0W7du1Er169xIcffiiGDx8u3n//fSGEEDabTbz44ouiY8eO4s477xQffPCBiImJ0ddiLen5Clq7dq248847xdtvvy06duwo+vTpI7Zu3arvnzhxYsC6rGU5f2Jiohg2bJho27at6Nu3r9i0aVORr3Xjxo2if//+om3btqJnz57i888/F0IIcfr06YC1X9PT08WECRNEp06dRJcuXcTEiRNFRkZGse9fUXUmIiEuXLggpk6dKnr06CHatWsn/vSnP4mlS5cKl8ull1mwYIG47bbbRKdOnURCQoJYu3atiImJEWfPni3y900IIZYvXy7uuOMO0aVLF/Hxxx+Lzp07X/U62vlV9+uOzWYTt956qzhw4IDIyMgQTzzxhGjfvr14/vnnxe7du8Wtt94q7rjjDrF48WLh9XrF8ePHhd1uD3i9Bevjd+DAAXH//feLtm3biqFDh4pDhw4F7F+3bp24++67RceOHcVTTz0lUlNTS3yviUoiCcGBWEREVHt888036Natmz4r8MGDBzFq1Cjs37//qoecrFu3Du+++26hrpNERHTt1qxZg0WLFmHJkiX6GuUFeb1evP3229i5cyfWr1+PkJCQSq4lUck4GRoREdUq77//Pnbu3Iknn3wSdrsdb731Fnr27Ml5HYiIqojhw4cjKysLw4YNQ3x8PHr27InmzZsjJCQEaWlp2L9/P9asWQODwYDly5czZFOVxBZtIiKqVY4dO4aZM2fi4MGDMBqN6NmzJyZPnlzqGrlFYYs2EVHFSU5Oxt///nfs2bMHZ8+ehdPpRL169dCqVSsMGDAAgwYN4oekVGUxaBMRERERERGVI846TkRERERERFSOGLSJiIiIiIiIyhGDNhEREREREVE5YtAmIiIiIiIiKkcM2kRERERERETliEGb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DBiAzMxMjBw5EmfOnEH37t0d64xGI7y8vKDX66FWqxEYGIjCwkJs3brVsU1MTAySk5PrTLKJqHYZGRm80UHkZrzOqDmra7yd8vJy/OlPf8KuXbvg7e2NhQsXIjMzE7/61a8A2Oa9diVea0TUFLkl0Q4PD8exY8cwadIkiAhWrVqFXbt2obS0FFFRUYiKikJ0dDS0Wi06duyI8ePHu6MYRERERPQI6hpvR6fT4W9/+xu8vb0BAGazGXq9HtnZ2SgrK8P06dNhNpuxcOFC9OvXzyPlJyLyNLck2iqVCsuXL6+2LDg42PF68uTJmDx5cq37u/pOKBERERE9uLrG21GpVAgKCgJg+5uttLQUoaGhuHDhAmbMmIHIyEhcunQJM2fOxKeffup4fJCIqCVh5CMiIiKiauoab8f+ft26dcjNzcXGjRuhKAq6dOmCTp06OV4HBATg9u3b9Y4HwsFtGzfWveew7ps2JtpEREREVE1d4+0AQFJSEnQ6Hd566y2oVLbZYtPT03HhwgUkJyfj1q1bKC4ufqDxdji4bePGuvecB617Dm7bODHRJiIiIqJq6hpvp0+fPkhPT0dISAimTp0KAIiNjUVERAQSEhIwefJkKIqCVatWsds4EbVYjH5EREREVE194+1kZ2fXuN8f//hHt5aLiKipUHm6AERERERERETNCRNtIiIiIiIiIhdiok1ERERERETkQoqIiKcLQURERERERNRcsEWbiIiIiIiIyIWYaBMRERERERG5EBNtIiIiIiIiIhdiok1ERERERETkQky0iYiIiIiIiFyIiTYRERERERGRCzXaRLuyshKLFi1CdHQ0IiIicOjQIZw/fx6DBw9GTEwMYmJisHfvXsf2s2bNgtVqRVJSEqKiohATE4PLly/fd9z9+/djwoQJiIiIwMcff+xYnp+fj4SEBNy+fRtTp05FdHQ05s+fj7Kysgb5vo3R888/76jrhIQEXL58GZMnT0Z0dDT+7//+D1ar1bEt6981vvrqK8TExABArfWdlpaG3/72t5g4cSIyMzMd+547dw4bNmyo8zwBgMViQUJCAiZNmoQXXngBV65ccax75513kJWVVet5ItdinPM8xrmGxzjXsjDOeRZjXMNjjCMHaaTS09MlJSVFRETy8/NlyJAhkpaWJm+//fZ9216/fl2WLVsm+/fvl/j4eBER+fe//y2z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\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "performances_df_xgboost_fixed_max_tree_depth=performances_df_xgboost[performances_df_xgboost[\"Parameters summary\"].str.endswith(\"0.3/3\")]\n",
    "\n",
    "summary_performances_fixed_max_tree_depth=get_summary_performances(performances_df_xgboost_fixed_max_tree_depth, parameter_column_name=\"Parameters summary\")\n",
    "\n",
    "get_performances_plots(performances_df_xgboost_fixed_max_tree_depth, \n",
    "                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'], \n",
    "                       expe_type_list=['Test','Validation'], expe_type_color_list=['#008000','#FF0000'],\n",
    "                       parameter_name=\"Number of trees/Maximum tree depth\",\n",
    "                       summary_performances=summary_performances_fixed_max_tree_depth)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Increasing the number of trees from 25 to 50 allow to increase the performances for all performance metrics. Adding more trees however only provides slightly higher performances for AUC ROC and AP, and slightly decreases performances for CP@100. \n",
    "\n",
    "Similar to random forests, increasing the maximum tree depth and the number of trees comes at a cost in terms of execution times. This is illustrated in the two figures below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_execution_times_plot(performances_df_xgboost_fixed_max_tree_depth, \n",
    "                         title=\"Execution times with varying \\n number of trees\",\n",
    "                         parameter_name=\"Number of trees/Learning rate/Maximum tree depth\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_execution_times_plot(performances_df_xgboost_fixed_number_of_trees, \n",
    "                         title=\"Execution times with varying \\n maximum tree depth\",\n",
    "                         parameter_name=\"Number of trees/Learning rate/Maximum tree depth\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The total execution time was more than 10 minutes using one core. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total execution time for the model selection procedure: 1251.2s\n"
     ]
    }
   ],
   "source": [
    "print(\"Total execution time for the model selection procedure: \"+str(round(execution_time_boosting,2))+\"s\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Model_Selection_Comparison_Performances)=\n",
    "## Comparison of model performances\n",
    "\n",
    "The previous section detailed the performances of different model classes. Let us compare these performances in order to determine which model class provides the best performances. \n",
    "\n",
    "For each model class, let us retrieve the performance for three types of parameters:\n",
    "\n",
    "* Default parameters: Default parameters that `sklearn` gives to a model class. The default parameters for each model class are:\n",
    "    * Decision tree: `max_depth=None`.\n",
    "    * Logistic regression: `C=1`.\n",
    "    * Random forest: `n_estimators=100`, `max_depth=None`.\n",
    "    * XGBoost: `n_estimators=100`, `max_depth=6`, `learning_rate=0.3`.\n",
    "* Best estimated parameters: Parameters that provide the highest performances on the validation set.\n",
    "* Optimal parameters: Parameters that provide the highest performances on the test set.\n",
    "\n",
    "The `model_selection_performances` function below takes a dictionary of performance DataFrames and a performance metric, and retrieves the corresponding performances (mean together with standard deviation). \n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "performances_df_dictionary={\n",
    "    \"Decision Tree\": performances_df_dt,\n",
    "    \"Logistic Regression\": performances_df_lr,\n",
    "    \"Random Forest\": performances_df_rf,\n",
    "    \"XGBoost\": performances_df_xgboost\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "def model_selection_performances(performances_df_dictionary,\n",
    "                                 performance_metric='AUC ROC',\n",
    "                                 model_classes=['Decision Tree', \n",
    "                                                'Logistic Regression', \n",
    "                                                'Random Forest', \n",
    "                                                'XGBoost'],\n",
    "                                 default_parameters_dictionary={\n",
    "                                                \"Decision Tree\": 50,\n",
    "                                                \"Logistic Regression\": 1,\n",
    "                                                \"Random Forest\": \"100/50\",\n",
    "                                                \"XGBoost\": \"100/0.3/6\"\n",
    "                                            }):\n",
    "    \n",
    "    mean_performances_dictionary={\n",
    "        \"Default parameters\": [],\n",
    "        \"Best validation parameters\": [],\n",
    "        \"Optimal parameters\": []\n",
    "    }\n",
    "    \n",
    "    std_performances_dictionary={\n",
    "        \"Default parameters\": [],\n",
    "        \"Best validation parameters\": [],\n",
    "        \"Optimal parameters\": []\n",
    "    }\n",
    "    \n",
    "    # For each model class\n",
    "    for model_class in model_classes:\n",
    "        \n",
    "        performances_df=performances_df_dictionary[model_class]\n",
    "        \n",
    "        # Get the performances for the default paramaters\n",
    "        default_performances=performances_df[performances_df['Parameters summary']==default_parameters_dictionary[model_class]]\n",
    "        default_performances=default_performances.round(decimals=3)\n",
    "        \n",
    "        mean_performances_dictionary[\"Default parameters\"].append(default_performances[performance_metric+\" Test\"].values[0])\n",
    "        std_performances_dictionary[\"Default parameters\"].append(default_performances[performance_metric+\" Test Std\"].values[0])\n",
    "        \n",
    "        # Get the performances for the best estimated parameters\n",
    "        performances_summary=get_summary_performances(performances_df, parameter_column_name=\"Parameters summary\")\n",
    "        mean_std_performances=performances_summary.loc[[\"Test performance\"]][performance_metric].values[0]\n",
    "        mean_std_performances=mean_std_performances.split(\"+/-\")\n",
    "        mean_performances_dictionary[\"Best validation parameters\"].append(float(mean_std_performances[0]))\n",
    "        std_performances_dictionary[\"Best validation parameters\"].append(float(mean_std_performances[1]))\n",
    "        \n",
    "        # Get the performances for the boptimal parameters\n",
    "        mean_std_performances=performances_summary.loc[[\"Optimal test performance\"]][performance_metric].values[0]\n",
    "        mean_std_performances=mean_std_performances.split(\"+/-\")\n",
    "        mean_performances_dictionary[\"Optimal parameters\"].append(float(mean_std_performances[0]))\n",
    "        std_performances_dictionary[\"Optimal parameters\"].append(float(mean_std_performances[1]))\n",
    "        \n",
    "    # Return the mean performances and their standard deviations    \n",
    "    return (mean_performances_dictionary,std_performances_dictionary)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For examples, executing the function for the AUC ROC metric returns:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({'Default parameters': [0.797, 0.868, 0.87, 0.859],\n",
       "  'Best validation parameters': [0.797, 0.868, 0.87, 0.869],\n",
       "  'Optimal parameters': [0.813, 0.868, 0.875, 0.872]},\n",
       " {'Default parameters': [0.005, 0.015, 0.014, 0.005],\n",
       "  'Best validation parameters': [0.01, 0.02, 0.02, 0.01],\n",
       "  'Optimal parameters': [0.01, 0.02, 0.01, 0.01]})"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_selection_performances(performances_df_dictionary,\n",
    "                             performance_metric='AUC ROC')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For better visualization, let us plot the performances for the four model classes and for each performance metric as bar charts. The implementation is provided with the `get_model_selection_performance_plot` and `get_model_selection_performances_plots` below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "# Get the performance plot for a single performance metric\n",
    "def get_model_selection_performance_plot(performances_df_dictionary, \n",
    "                                         ax, \n",
    "                                         performance_metric,\n",
    "                                         ylim=[0,1],\n",
    "                                         model_classes=['Decision Tree', \n",
    "                                                        'Logistic Regression', \n",
    "                                                        'Random Forest', \n",
    "                                                        'XGBoost']):\n",
    "    \n",
    "    \n",
    "    (mean_performances_dictionary,std_performances_dictionary) = \\\n",
    "        model_selection_performances(performances_df_dictionary=performances_df_dictionary,\n",
    "                                     performance_metric=performance_metric)\n",
    "    \n",
    "    \n",
    "    # width of the bars\n",
    "    barWidth = 0.3\n",
    "    # The x position of bars\n",
    "    r1 = np.arange(len(model_classes))\n",
    "    r2 = r1+barWidth\n",
    "    r3 = r1+2*barWidth\n",
    "    \n",
    "    # Create Default parameters bars (Orange)\n",
    "    ax.bar(r1, mean_performances_dictionary['Default parameters'], \n",
    "           width = barWidth, color = '#CA8035', edgecolor = 'black', \n",
    "           yerr=std_performances_dictionary['Default parameters'], capsize=7, label='Default parameters')\n",
    " \n",
    "    # Create Best validation parameters bars (Red)\n",
    "    ax.bar(r2, mean_performances_dictionary['Best validation parameters'], \n",
    "           width = barWidth, color = '#008000', edgecolor = 'black', \n",
    "           yerr=std_performances_dictionary['Best validation parameters'], capsize=7, label='Best validation parameters')\n",
    "\n",
    "    # Create Optimal parameters bars (Green)\n",
    "    ax.bar(r3, mean_performances_dictionary['Optimal parameters'], \n",
    "           width = barWidth, color = '#2F4D7E', edgecolor = 'black', \n",
    "           yerr=std_performances_dictionary['Optimal parameters'], capsize=7, label='Optimal parameters')\n",
    " \n",
    "\n",
    "    # Set title, and x and y axes labels\n",
    "    ax.set_ylim(ylim[0],ylim[1])\n",
    "    ax.set_xticks(r2+barWidth/2)\n",
    "    ax.set_xticklabels(model_classes, rotation = 45, ha=\"right\", fontsize=12)\n",
    "    ax.set_title(performance_metric+'\\n', fontsize=18)\n",
    "    ax.set_xlabel(\"Model class\", fontsize=16)\n",
    "    ax.set_ylabel(performance_metric, fontsize=15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "def get_model_selection_performances_plots(performances_df_dictionary, \n",
    "                                           performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'],\n",
    "                                           ylim_list=[[0.6,0.9],[0.2,0.8],[0.2,0.35]],\n",
    "                                           model_classes=['Decision Tree', \n",
    "                                                          'Logistic Regression', \n",
    "                                                          'Random Forest', \n",
    "                                                          'XGBoost']):\n",
    "    \n",
    "    # Create as many graphs as there are performance metrics to display\n",
    "    n_performance_metrics = len(performance_metrics_list)\n",
    "    fig, ax = plt.subplots(1, n_performance_metrics, figsize=(5*n_performance_metrics,4))\n",
    "    \n",
    "    parameter_types=['Default parameters','Best validation parameters','Optimal parameters']\n",
    "    \n",
    "    # Plot performance metric for each metric in performance_metrics_list\n",
    "    for i in range(n_performance_metrics):\n",
    "    \n",
    "        get_model_selection_performance_plot(performances_df_dictionary, \n",
    "                                             ax[i], \n",
    "                                             performance_metrics_list[i],\n",
    "                                             ylim=ylim_list[i],\n",
    "                                             model_classes=model_classes\n",
    "                                            )\n",
    "    \n",
    "    ax[n_performance_metrics-1].legend(loc='upper left', \n",
    "                                       labels=parameter_types, \n",
    "                                       bbox_to_anchor=(1.05, 1),\n",
    "                                       title=\"Parameter type\",\n",
    "                                       prop={'size': 12},\n",
    "                                       title_fontsize=12)\n",
    "\n",
    "    plt.subplots_adjust(wspace=0.5, \n",
    "                        hspace=0.8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABEkAAAF7CAYAAAAub9VMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeVxN+f/A8ddtXySDkC2EZMpUZDc0hEEGIVvW7MtgsjS27Hu2MBiZxjL2XZbBmLEPQ2MsGcMMqSSRirTc7u8Pv87X1SpL4f18PDymez6fzznvU9Onc9/3s6g0Go0GIYQQQgghhBBCiI+cTl4HIIQQQgghhBBCCJEfSJJECCGEEEIIIYQQAkmSCCGEEEIIIYQQQgCSJBFCCCGEEEIIIYQAJEkihBBCCCGEEEIIAUiSRAghhBBCCCGEEAKQJMkH7/Tp09jY2FCrVi2SkpLSlY8dOxYbGxvu3r2bYfuzZ89iY2PDkiVL0pXFx8cTEBBAu3btqF69Og4ODrRv355NmzaRmpqabWxp1375X7Vq1XBxceHbb7/lwYMHGbaNj49nyZIltG7dGgcHB2rVqkWnTp3YuHEjiYmJmV4zOjqaJUuW4ObmhqOjI05OTnTr1o39+/dnG68QInPZ9TUi79jY2DB27NhXauPp6ckXX3zxliISIu+97jPMm/DFF1/g6emZZZ2MnpVsbW1xcnKiQ4cO7Nix453E+qLc9A9LlizJ8nnzbTh+/Dje3t40bdqUzz77DEdHR1q0aMGYMWM4d+5cjs6RnJxMy5YtM3wOBjhz5gydOnXC0dGRhg0bsmTJElJSUnJdTwiRP+jldQDi7dq7dy8mJibExMRw9OhRmjdv/kbOe+vWLQYOHEhYWBhubm64u7uTmJjIkSNHmDhxIufOnWPu3LmoVKpsz+Xj48Mnn3yivI6Pj+f06dNs27aNy5cvs3XrVgwMDJTyGzdu4OXlRXR0NC1btqRLly48e/aMM2fO4Ovry9atW1m2bBnFihXTus7FixcZOnQoT548oU2bNnTp0oW4uDj27t3L8OHDuXbtGiNHjnwj3x8hPjZvq68Rr2/OnDmULVv2ldoMGDCAhISEtxSREHnrTT7DvCsvPitpNBri4+PZvXs3Y8eO5dGjR/Tu3fudxZKb/sHV1ZWyZctSuHDhtxTV/9y/fx9vb2/Onj1L1apVadasGWXKlCE5OZm7d+9y9OhRdu7cSdOmTZkxYwZmZmYZnkej0TBhwgT++eefDMsvXLiAl5cXVapU4ZtvvuHmzZssXbqUBw8eMHny5FeuJ4TIRzTig5WYmKipUaOGZtKkSZrq1atr+vXrl67OmDFjNJUrV9aEhoZmeI4zZ85oKleurFm8eLFy7NmzZ5pmzZppatasqbl27Vq6Nr6+vprKlStrAgMDs4wvu2tPmjRJU7lyZc2+ffuUY48fP9Y0atRIU69evQyvfeTIEY29vb3Gw8NDo1arlePR0dGa2rVra7744gtNeHi4VpuUlBRN//79NZUrV9YcPnw4y5iFEOnlpK8RQoj84E09w7wJLi4umm7dumVZJ6tnpYSEBI2Li4vGyclJk5iY+LbCfK9ERERoGjVqpGnQoIHm1KlTmdY7dOiQplatWpo2bdpk+L17/PixZtCgQZrKlSunew5O4+HhoXF1ddU8ffpUOebn56epUqWK5p9//nnlekKI/EOm23zAfv31V2JjY6lVqxb169fn+PHjREVFvfZ5N2zYwL///ouPjw9VqlRJVz5mzBjMzc3ZuHHja12nbdu2APz555/KsdWrVxMeHs7MmTMzvPYXX3zBgAEDuHjxIrt27VKOL1u2jIcPHzJr1iwsLS212ujq6uLr64uuru5rxyzEx+ht9TVCCPGmvatnmHfByMiIL774gvj4eG7cuJHX4eQ5tVrN119/jbm5Odu2baNOnTqZ1nV1dWXLli2Eh4fj5+enVRYSEkKzZs349ddfMx2hExERwcWLF2nTpg3GxsbK8a5du5KamsqBAwdeqZ4QIn+RJMkHbM+ePahUKpydnXF1dUWtVmslDnJr3759mJiY0LJlywzLjYyM2Lx5Mzt37nyt66T9MdFoNMqxnTt3YmVlRYMGDTJt1717d/T19dm9ezeA8keofPnyODs7Z9imRIkS7Nmzh+++++61YhbiY5RVX5OUlISzszMDBgxI12779u3Y2Ngoc8NTU1MJCAigefPm2NnZ0aBBA6ZNm0Z8fLzSJm2dpB07duDm5oa9vT0+Pj4AREVFMWXKFBo3boydnR3Vq1ene/fu/PHHH1rXTU5OZuHChTRq1IjPPvuMbt26ERISQtWqVdPNO9++fTtt2rTB3t6e2rVrM3bsWO7fv5/l9+Pu3bvY2Niwbds2Zs2aRa1atXB2dmbYsGGEhoamq/fDDz/QuXNn7Ozs6Nmz5ytfe9euXbi7u+Pg4MDnn3/OxIkTefjwoVL+8pok4eHhDB06lPr162Nvb0+LFi1YtWqV1joMGa05cP36dQYNGkSNGjWoVq0aHTt25PDhw1p1PD096dOnD7/99hvt2rXD3t6eRo0asWTJkne2zoMQWcnNM4xGo+Gnn36iffv2ODo6Ym9vT/PmzVm5cqXWM8oXX3zB+PHj+fbbb7G3t+fzzz9XfheDgoL46quvqFatGq1ateLMmTNv5H7SpgSp1epsY7h48SK9evXC0dERR0dHevfuzaVLl9Kd888//6Rv3744OztTq1Yt+vXrx/Xr15Xyl/uHpKQkpk+frvS9DRs2ZPLkyTx+/Fipk9GaJI8ePcLX15cGDRpgZ2dHs2bNWLlypXIvae3s7e3577//6N+/P46Ojjg7OzNmzBgePXqkFfeOHTu4du0afn5+WFhYAM+fG1u1aoWjoyMDBgwgMjISd3d3OnToQJkyZRg3bhzr16/XivXu3buUL1+ezZs307Vr1wy/75cvXwbg008/1TperFgxLCwslPKc1hNC5C+SJPlAxcfHc+zYMRwcHChatCgNGzbEwMDgtRf40mg0XLt2DTs7O/T19TOtV65cOa11RHLj+PHjAFStWhWAe/fuce/ePRwcHLJsV6BAAezs7Dh//jwAkZGRREVFZdvO2toaXV3d14pZiI9Ndn2NgYEBTZs25eTJk8TFxWm1DQoKwtLSkho1agAwbtw45s6di5OTE+PHj6d58+Zs3LiR7t27p1uQecqUKVSvXp1Ro0bRuHFjnj17RteuXdm/fz9t27Zl0qRJdOrUicuXL9OvXz+tRIu3tzfLly+ndu3ajB49GiMjI7p3757uTby/vz8+Pj6ULVsWHx8fPDw8+Pnnn+nUqZNWEiIz/v7+7N+/nz59+tCtWzeOHz9Oly5d0j3YL1q0iOLFi/Ptt9/i5ub2StdetWoVo0ePxtDQkJEjR9K2bVt2795N//79M1wUMDk5GS8vL65cuULPnj2ZMGEC5cuXZ968eaxcuTLTe7l06RIeHh5cunSJXr16MXLkSJKTkxk8eDDr16/Xqvv3338zfPhwatWqxfjx4ylTpgz+/v789NNP2X7PhHibcvsMs3DhQnx9falYsSI+Pj6MHDkSQ0ND5s+fn+4DoX379hESEsK4cePo2LEjhQsXZvv27YwYMQJjY2NGjRpF7dq1GTBgQKaL0+dUamoqv//+OwYGBlhbW2cZw8mTJ/H09CQuLo6vv/6agQMHEh4eTteuXZXnJYDz58/TtWtXbt68SZ8+fRg4cCD//PMP3bt3z3TR1SlTprBlyxZatmzJpEmTaNasGZs3b2bEiBGZxv748WM6derE1q1badasGT4+PlhbWzN//ny++eabdPfZvXt3TE1NGTNmDE2bNmXnzp34+vpq1QsMDKRXr15UqFABAD8/P8aMGYOdnR2jR48mISEBLy8vbt68qSQtvvzyS8zMzPj555+V83z++eds2LBBef7MSGRkJADFixdPV1asWDEiIiJeqZ4QIn+RhVs/UAcPHiQxMZGmTZsCzxMHdevW5dixY1y6dIlq1arl6ryPHj0iJSVFydC/CbGxsVoP/fHx8Rw/fhx/f3+sra2VT3vSPkHNybWLFSvGxYsXiYmJUYb9v8mYhRDP5aSvcXNzY+vWrRw5coQ2bdoAz/uS06dP06tXL1QqFWfPnmX79u1MnjyZTp06Kedv2LAhffr0YePGjfTo0UM5bmdnp/WAHBQUxO3bt/n++++1RpqVKVOGSZMmcerUKZo2bcr58+c5cOAAAwYMUB7gu3TpwtChQ7UekkNDQ1m6dCn9+vXTemBv2bIl7dq147vvvuPbb7/N8nsTExPD/v37KVGiBADOzs706tWLgIAArXNaWFgwd+5c5U1bTq/9+PFjlixZQoMGDVixYoWS5C1dujTjx4/n5MmTNGzYUCuma9eucfPmTRYtWqQsrtuhQwe8vLz4999/M72XadOmoVKp2Lp1q3I/nTt3pnPnzsyZM4cvv/xSWZDx/v37LF++XPmkuU2bNjRo0IA9e/Zk+qmsEO9Cbp5hkpOTWbduHS1btmTWrFnK8Q4dOlCnTh0OHjyoTA8GePbsGQsXLlQWS1ar1cybNw97e3vWrl2r/J5XrVpVGQWXEy8+K6nVasLCwvjhhx8ICQmhZ8+emJqaZhpDamoqkyZNwt7ennXr1il9Rbdu3WjTpg3Tpk1Tkj2zZ8+mUKFCbNu2TVkotmHDhrRo0YINGzYwevTodLHt2bMHd3d3rcXvTUxMOH78OE+ePNGKLc2qVav477//WLp0KU2aNAGeT0GZPHkyGzZsoG3btkr/lZKSQosWLZQRcZ06dSIyMpLDhw+TkJCAsbExt2/f5u+//2bx4sXA81GHK1asYPDgwQwbNgyAjh074ubmRkJCgpIk0dfXp0qVKvz3339KbDn5kO/JkycAWlNo0hgaGio/q5zWE0LkLzKS5AO1Z88e4PmcyzRpX+dmNEnacE4dnef/y7w4FPJ1tW3bljp16ij/XF1dmTt3Li4uLqxfvz7dpz16etnn9tLqaDQa5WHgTcYshHguJ31NzZo1KV68uNbc60OHDpGSkqKMnDh06BAqlYqGDRvy8OFD5V/VqlWxsLDg2LFjWtetX7++1usWLVpw+vRpreMvbkX89OlTACUR0qtXL6VMpVLRt29frfP9/PPPpKam8sUXX2jFU7RoUWxtbdPFk5HWrVsrCQWAunXrUrlyZY4ePapVr3bt2lr9XE6vferUKRITE+natavWKLjWrVuzfft2atasmS6mYsWKoVKpWLFiBcePHycpKQmVSsXq1auZPXt2hvfx4MED/vzzT7766iut+zE0NKRPnz48e/aMU6dOKceNjY1p1KiRVr3y5cu/9qfmQryu3DzD6Ovrc+rUKaZMmaJ1/NGjRxQoUEDpW9KULVtWazepK1euEB0dTbt27bR+z7/66ivMzc1zHMeLz0r169fHw8ODI0eO4OnpmW7kxcsxXL16ldDQUJo0acLjx4+VPuXZs2e4uLhw7do17t27R3R0NH/99Rdubm5auw6WL1+ebdu2pesn05QoUYKgoCC2b99ObGwsAMOHD2fbtm0ZJkgAjh49irW1tZIgSTNo0CAAjhw5onX8yy+/1Hpta2tLSkoKMTExwPP+sFy5cpQvXx6A5cuXU6xYMQYOHKi00dXVpV69egDY29srx83NzZW4cypt5GFmOyClHc9pPSFE/iIjST5A9+/f5/fff6dcuXKoVCpleGSVKlVQqVTs27cPHx8fDAwMlGx5Zg8MacfT6pmbm6Ovr/9GM99z586laNGiJCcnc/z4cdavX8+XX36Jr68vhoaGSr20LX1z8qB9//59DAwM+OSTT5Q3SpKtF+LNepW+pmXLlqxdu5a4uDjMzMwICgqicuXK2NjYAHDnzh00Go3Wm+sXvfygndE2kiqVipUrV3Lx4kXu3LnDnTt3SE5OBv73oHr79m0KFSpEoUKFtNqmDc9Oc+fOHQCtUS0vymqofpqKFSumO1auXDllKmFm95LTa4eFhQFgZWWlVW5oaJhu/nuaEiVKMGrUKPz8/PDy8sLExIQ6derQokULvvzyywynHKZdJ+3Nx4vShviHh4crxwoVKqS8GU1jYGAga5KIPJfbZxh9fX2OHTvGkSNH+Pfff7l9+7ayhsWLa5IAFClSROt12u/Py9tw6+rqpvvdzUrasxI8T/YULFgQa2trreekzGJI61PmzJnDnDlzMjx/REQEurq6aDSaDOPKauqJr68vw4cPx8fHhwkTJuDg4ICrqyvu7u6Zbq979+7dDNeXs7CwoGDBgsr3Lc3L/eTLz6/37t2jVKlSwPOpPGfPnqVz587p+mpdXV0MDQ21+uewsLB0iffspP1NevbsWbqyxMREpTyn9YQQ+YskST5AQUFBqNVq/vvvPxo3bpyu/PHjxxw+fJgWLVoon2KkDQfMqC5AwYIFgedvQhwdHbl8+TIpKSmZjupYsGABoaGh+Pj4ZDus1cnJidKlSwPPh3RaWVkxbdo0YmJiWLZsmZJlL1GiBKVLl9aaO5uRhIQErly5gqOjI/B8HmipUqUIDg7Ost23336LRqNJl5wRQmTsVfoaNzc3AgICOHLkCPXr1+fcuXMMHz5cqZuamoqpqSn+/v4ZXuvl38mX38yHhYXh4eHB06dPqV+/Pi1atMDW1haNRsPgwYOVesnJyRkmOF4+f9ob+uXLl2NkZJTNdyJjGV1HrVanSyC8fC85vXZavZfPl50+ffrQqlUrfv75Z3799VdOnjzJkSNH2LlzJ99//326+i+/Ccwohhfv9VXjEeJdyc0zTNGiRRk1ahR79+6levXqODo64uHhgbOzs9YUwDQv/z6nPcO8vK4S8EqJwxeflbKTWZ/y9ddfZ7o+W4UKFZQpd6/6O1ynTh1++eUX5d/JkyeZOXMmP/zwA9u3b88wqZ1dv/Jy/5ndiIuHDx8qo1/u3LlDamoqlSpVSlfv0qVLVKlSRfnZ379/n7/++ouvv/462/t8UcmSJYHnC4ZXrlxZq+z+/fvKtPac1hNC5C+SJPkApe00MWvWLAoUKKBVFhISwpIlS9ixYwctWrRQPgW8ceNGhp8S/P333wBaf2hcXV35/fffCQoKonXr1unaPHv2jK1bt6JWq9N9WpsTnp6enD59miNHjhAYGKi120Pr1q1ZtmwZR44cyfBNGcCmTZt4+vSpVmyurq788MMPnD9/Xlkk8kUPHjxg9+7dVKhQQRIkQuTQq/Q1VatWxdramsOHD/PkyRNSU1O1dpcoVaoUJ06cwM7OTknKpjl48GC2fYm/vz/R0dHs37+fcuXKacX4ojJlynDq1Cni4+O1Yn5xPnpaPACWlpbY2tpqlf3666/p7jcjaZ/evuj27dta8WUkp9dO28785XMmJSUxatQo3Nzc0g1lj4mJISQkBCcnJ7p160a3bt14+vQpY8eO5eDBg1y/fl0Z3fNyPLdu3UoXa9qbqhen4QiRn73qM8z58+fZu3cvgwYN0nojnTbVo0yZMlleL6385T5Go9EQFhaW4Rv5Ny3td9jExIS6detqlV26dInHjx9jZGSk1ae8bO7cuZibm9OvXz+t40lJSVy7do0SJUrQsmVLWrZsSWpqKmvWrGHOnDns27cPT0/PDGPKqE+JiooiPj5eiSWnChQooPS5aQmQlz8A/Pvvv7lw4QKdO3dWjvn7+1O2bFlq1679StdL65uvXLmiTOGB54mPqKgoZTpPTusJIfIX+bjnA/Pff/9x+fJlatasSZs2bWjSpInWv/79+2NhYcHJkyeJjIykXr16GBkZ8eOPP6YbChgbG8uOHTuwtLTU6sQ9PDwoVaoUs2fPVpIoadRqNb6+vjx48IC+ffvmaEh6RqZMmYK5uTkLFy7U2jKzX79+yqKEV69eTdfu5MmTLFiwAAcHB62F1Pr160eBAgUYP3489+7d02qTmJjI6NGjSU5OVubCCiGy9qp9DYCbmxsnT57kwIEDVK9eXXlwB5RFPpcvX651naNHjzJs2LB0yY6XxcTEYGxsrHxqB88f3jdu3Aj8b0i2q6srqampbNiwQav9yzu0uLi4ALBixQqtTzyvXbvGwIEDCQwMzPZ7tGvXLq1ddX799Vf++ecfZZHbzOT02nXr1kVfX5/Nmzdr1Ttw4IDW+i8vOnnyJD169NBaF8XExET5hDOj6TYWFhbY2dmxe/durf4zKSmJNWvWYGBgoPXwL0R+9qrPMGlrXrw8fW7z5s0kJCRkuIvUi6pWrUqpUqX46aefSEhIUI7v27cv3U5Xb4udnR0WFhasXbtWK3EQHx+vTJPR1dWlePHiVKlShX379mn1XaGhofz4448ZTneOiYnBw8ODFStWKMd0dHSU58bMRqW4uLhw69atdNuIp+2yldnUy8yULFlSeV60trbG1NSUoKAg5efz6NEjRo0ahUajURLB69evZ8uWLUyYMOGVdzcsVaoUdnZ2bNu2Tev5ef369ahUKmUNlZzWE0LkLzKS5AOT9kaiffv2GZbr6+vj7u7Od999x65du+jXrx+jR49m6tSptGvXjjZt2lCkSBEiIiLYvn07Dx8+xN/fX2ulb0NDQ/z9/enduzft27fHzc0Ne3t7YmJiOHDgANeuXaN58+ZaCyO+qqJFi+Lt7c2ECROYNGkSAQEBwPMFAVevXk2/fv2UVcodHBxISUnh7NmzHDp0iKpVq7J48WKtP3hFihRh0aJFDBkyhJYtW9K2bVsqVapEVFQUO3fuJDQ0lJ49eyq7PQghspabvqZVq1YsXLiQ33//ncmTJ2vVb9iwIY0bNyYgIIC7d+9St25dwsLCWL9+PSVLlqRPnz5ZxvP5559z9OhR+vfvT/PmzYmLi2Pnzp3KJ4tpbwzq1auHi4sL8+fP599//8Xe3p5Tp04p64SkDemuXLkynp6erF27lpiYGJo0aUJMTAzr1q3D1NQ0R0Oz4+Li6NixIx07duThw4cEBgZibW2d4RD9F+X02kWKFGHw4MEsXLiQ3r1706RJE+7du8e6deuoVauWkmx5kYuLC+XLl2fcuHFcuXKFsmXLcuvWLdavX0/t2rUzXEcFYPz48fTo0YP27dvTuXNnTE1N2b17N1euXGH8+PHpRv8IkV+96jOMo6MjBQoUYObMmYSHh1OwYEHOnj1LUFAQhoaGmU5XTqNSqZgwYQKDBw/Gw8MDd3d3IiMjWb9+fa5G2+aGvr4+EyZMYPjw4bRr14727dtjaGjIli1bCA8PZ968ecroCx8fH7y8vHB3d6dDhw7o6Oiwbt06ChYsmOHCrcWKFcPNzY0NGzaQkJCAo6Oj0l8VLVo00yRA//79OXToEMOHD6dz586UK1eOM2fOcOjQIZo2bZpuZ67s1K1bl2nTpim7qnXv3p3ly5fj4eFBtWrV+Pnnn5X1UTZv3szhw4c5fvw4Pj4+r7weSRpvb2/69OmDp6cn7du35/r162zYsIGuXbtqje7LaT0hRP4hSZIPzN69ezEzM8vyk8qOHTuycuVKduzYQb9+/ejatStWVlasXbuWH3/8kZiYGIoWLYqTkxN9+/ZNN9wbnn8ysmvXLn744Qd+++03goKClOz8jBkzaNeu3Wuv2N2hQwd27tzJyZMn2blzp7J1aLly5di+fTubNm1i3759HDp0CF1dXSpUqMDEiRNxd3fPcMpM/fr12bFjB2vWrOH48eNs2bIFXV1d7O3tGTt2bLph6UKIzOWmrylTpoyyHsDLCUmVSsWiRYv4/vvv2blzJ7/88guFCxemadOmfP3118qChZnp1KkTsbGxbNmyhWnTplG0aFEcHBzw9/enU6dOnDlzRpm6t2DBAhYsWMC+ffvYu3cvjo6O+Pn5MWjQIK2E8Lhx46hQoQIbN25k9uzZmJmZUaNGDb7++mtlqmJWevXqRXx8PEuWLMHAwIDWrVszcuTIDLeCfFlOrz1w4EAsLCz48ccfmTVrFhYWFnTs2JGhQ4dm+MmoiYkJAQEBLF68mD179vDgwQMsLCzo0qULQ4YMyTQeR0dHfvrpJxYvXkxAQACpqalUqVJFa/tOId4Xr/IMU7RoUVauXMm8efNYtmwZBgYGlC9fHj8/Py5duqSMsMiqj3JxcWHFihUsWbIEPz8/ihcvzvTp09ONYHubmjVrRkBAAMuXL2fZsmXo6OhQqVIlli9frpVQrV27NoGBgSxevJilS5diaGiIs7Mzo0aNynSNualTp1KmTBn27dvHvn37MDY2pk6dOowYMSLD9Ujg+QLPmzZtYuHChQQFBREbG0uZMmUYPXq01jTrnLK2tsbW1pbvv/+exYsXM3ToUFJTU9m0aRP379+nd+/etG7dmv79+/PPP/+gr6/PypUradiwIREREURHR2NnZ/dK16xTpw7Lly9n0aJFTJs2DQsLC4YOHUr//v1zVU8IkX+oNFmtnCSEEEJ8QOLi4jAwMEiXSL18+TLu7u5Mnz4909ExOXX37l0aN27MkCFDGDp06GudSwghRM6cOnWK3r174+3tjZeXV47aXL9+na5du+Lq6srMmTPfcoRCiPeFrEkihBDio3Ho0CEcHBy4cOGC1vF9+/YByE4DQgjxnqpbty4jR45k7ty5fP311+nWoHtRUlIS69evp1OnTtja2uLr6/vuAhVC5Hsy3UYIIcRHw8XFBTMzM0aMGEHXrl0pVKgQwcHBbN++ndatW6fbolEIIcT7I22B/ylTptCoUSMcHByoUaMGxYoVw9jYmOjoaG7fvs2RI0d48uQJ3bp145tvvtGaaimEEDLdRgghxEfl5s2bLFmyhPPnzxMbG0upUqVo27Ytffr0eeUdDjIi022EECJvPXv2jL1793LixAmuXLlCdHQ0SUlJFCxYkDJlylC7dm3at2+f7RbOQoiPkyRJhBBCCCGEEEIIIZA1SYQQQgghhBBCCCEASZIIIYQQQgghhBBCAJIkEUIIIYQQQgghhAAkSSKEEEIIIYQQQggBSJJECCGEEEIIIYQQApAkiRBCCCGEEEIIIQQgSRIhhBBCCCGEEEIIQJIkQgghhBBCCCGEEIAkSYQQQgghhBBCCCEASZIIIYQQQgghhBBCAJIkEUIIIYQQQgghhAAkSSKEEEIIIYQQQggBSJJECCGEEEIIIYQQApAkiRBCCCGEEEIIIQQgSfcoceQAACAASURBVBIhhBBCCCGEEEIIQJIkQgghhBBCCCGEEIAkSYQQQgghhBBCCCEASZIIIYQQQgghhBBCAO8wSZKamsrEiRPx8PDA09OT27dva5Xv3LkTNzc3unTpwpYtW3LURggh8rvs+rHdu3fTtm1b3N3d2bBhQx5FKYQQQgghhADQe1cXOnz4MElJSWzatIng4GBmzZrF8uXLAXj48CGLFi1ix44dFCxYkJ49e1KnTh2uXr2aaRshhHgfZNX3AcyZM4e9e/diYmJCy5YtadmyJebm5nkYsRBCCCGEEB+vd5Yk+eOPP2jQoAEADg4OXL58WSm7e/cuVapUoVChQgDY29vz559/cunSpUzbCCHE+yCrvg/AxsaGuLg49PT00Gg0qFSqvAhTCCGEEEIIwTtMksTHx1OgQAHlta6uLikpKejp6WFlZcU///zDgwcPMDU15fTp05QrVy7LNpnRaDRoNJq3ei+5pVKp8m1sOfG+xw9yDzmhoyNLFb1J2fVjlSpVwt3dHWNjY1xdXSlYsGC258yv/Zz8fuUPcg/Zk34u/1Or1ajV6rwOIx1dXd18GderkHvIH972PRgYGLy1cwvxoXtnSZICBQrw5MkT5XVqaqryJsHc3BwfHx+GDh1KiRIl+PTTT/nkk0+ybJOZ5ORkoqOj385NvKYiRYrk29hy4n2PH+QecsLS0vKtnftjlFU/FhISwrFjxzhy5AgmJiaMGjWK/fv38+WXX2Z5zvzaz8nvV/4g95A96efyP7VanS//P5bfr/xB7iF70s8JkXvv7KMUJycnfvvtNwCCg4OpXLmyUpaSksKff/7J+vXrmT17Nrdu3cLJySnLNkII8T7Iqh8zMzPDyMgIQ0NDdHV1KVy4MLGxsXkVqhBCCCGEEB+9dzaSxNXVlZMnT9KpUyc0Gg0zZsxgz549PH36FA8PD/T19WnXrh2Ghob06tWLwoULZ9hGCCHeJ9n1fR4eHnTp0gV9fX3Kli1L27Zt8zpkIYQQQgghPloqzfs+cfklSUlJ+Xb43fs+NPB9jx/kHnJChmfmf/m1n5Pfr/xB7iF70s/lf9LPvT1yD/mD9HNC5F+ycpkQQgghhBBCCCEE73C6jRBCCCGEEEKI98Pjx4+JjIwkOTk5r0MR4o0yNTWlbNmyme52J0kSIYQQQgghhBCKx48fEx4ejrm5Ofr6+qhUqrwOSYg3QqPREBMTw4MHDyhWrFiGdSRJIt5L8+bNw8/P75XbjR8/nkGDBr2FiIQQQgghhPgwREZGYm5ujoGBQV6HIsQbpVKpMDMz4+HDh5IkEf/zOgmGp0+f5qrtyJEj8fb2fuV2mfH29s7wfO7u7gBs27Ytw3YfwkJfQgghhBBCvE3Jycno6+vndRhCvBW6urqo1epMyyVJ8hF63QRDbtoKIYQQQggh3h8yxUZ8qLL7f1uSJOKjMnXqVKZNm/bK7d70SBghhBBCCCGEEPmPJElEnsnttJ/XSVhMmDAhwzVJZCSMEEIIkbXU1FR8fX25fv06BgYGTJs2DSsrK6X84MGDrFy5EpVKhYeHBx06dFDKoqOjadeuHQEBAVhbW+dF+EKIj1hERAQdO3akQoUKWsc7dOhAq1at8iiq9OLj4/Hx8WHJkiWvdZ7du3eTkpJCu3bt3lBkHxdJkryn8iLB8KbldtrPx05GwwghhMgLhw8fJikpiU2bNhEcHMysWbNYvnw5AGq1mvnz57Nt2zZMTExo0aIFjRs3pnDhwiQnJzNx4kSMjIzy+A6EEB8zQ0NDAgMDlddRUVF4enpSpUoVKlasmIeR/U9cXBzXrl177fNcunQpXUJI5JwkSd5TkmD4eMloGCGEEHnhjz/+oEGDBgA4ODhw+fJlpUxXV5egoCD09PSUBdJNTU0BmD17Np06dWLlypXvPmghhMiEhYUFpUuXJjQ0lFKlSjFv3jxCQ0OJjY3FxMSESZMmYWVlxZAhQzAzM+POnTu0adMGW1tbli1bRnJyMtHR0Tg7O+Pj40NERATDhg3D2dmZkJAQ1Go1Xl5e7Nq1i9u3b1OlShUmT56Mjo4Of/31F8uWLePZs2fo6OjQu3dv6tWrx/Tp00lMTKRHjx4EBAQQGhrKwoULiY2NRa1WKyNfLly4wKJFizAyMiIhIYHvv/9e2Yno119/5cSJE5w7dw5DQ0O2bNnCyJEjqVmzJgAzZ87E2tqauLg47t69y/3794mOjqZSpUqMHTsWU1NToqKi8PPzIzIykpSUFBo3bkyPHj3y8sf1TkmSRIg8ItsYCyGEeJ/Ex8dToEAB5bWuri4pKSno6T1/nNTT0+PQoUNMmTKFhg0boqenx/bt2ylcuDANGjR4pSSJrq4uRYoUeeP38Lr09PTyZVyvQu4hf/gQ7uF9d/nyZe7evUvVqlU5c+YMBQoUUPqpOXPmsG3bNkaOHAlAwYIFWb9+PQCTJk3Cy8sLJycnnj59SocOHQgJCcHc3Jzw8HDq1KnD6NGjmTt3LosWLSIwMBA9PT06dOjAlStXsLKyYvr06SxYsABLS0uioqLo168f1tbWjBs3Dk9PTwIDA0lJSWHcuHFMnDgRGxsb4uPj6d+/P+XKlQPg1q1bbNmyhRIlSmjdV8OGDTl+/DgVKlTA3d2dlJQU9uzZQ82aNXny5AknTpxgyJAhbN68meDgYFavXk2hQoWYMmUKa9asYciQIUyZMgUPDw/q169PYmIi3t7elC5dmsaNG7+7H1AekiSJEHlEtjEWQgjxPilQoABPnjxRXqempioJkjRNmzalSZMmjB07lp07d7J9+3ZUKhWnT5/m2rVrjBkzhuXLl2NhYZHltdRqdb78W/ch/A2We8gf3vY9WFpavrVzv6/SRmjA8z6mUKFCTJo0ieLFi1O8eHFKlizJli1bCAsL4+LFi9jZ2Sltq1Wrpnw9fvx4Tp8+TWBgIHfu3CExMZGEhATMzc3R09Ojfv36AJQqVQo7OztlVF3RokWJjY3l8uXLREdHM3bsWOWcKpWKmzdvak2RCQ0NJTw8nBkzZmjdw40bN7CysqJYsWLpEiQZadGiBWvWrOHRo0ccO3aMevXqYWZmBoCLiwuFCxcGoFWrVixatIg+ffoQHBxMbGwsq1atAiAhIYEbN25IkkQIIYQQQog0Tk5O/PLLL7Ro0YLg4GAqV66slMXHxzNgwAACAgIwMDDA2NgYHR0d5ZNXAE9PT3x9fbNNkAghxNvw8pokL9qxYwe7du3C3d0dV1dXChYsSHh4uFJuYmKifD1o0CAqVqxIrVq1aNy4MVeuXEGj0QCgr6+vtb3sy4lkeJ5gLleunJKAgOfro3zyySdERUVp1TM1NdWK+eHDh5iamnLlyhWMjY1zdN9mZma4uLhw8OBBfv75Z7755hulTFdXV+t6Ojo6pKamotFoWLFihbKWVExMjDKd52Ogk9cBCPEuWZWrQMmSJdP9O336NKdPn86wLO2fg2P1vA5fCCGEyDOurq4YGBjQqVMnZs6ciY+PD3v27GHTpk0UKFAANzc3unbtSufOnVGpVLRu3TqvQxZCiBw5e/YsLVq0wM3NjbJly3LixAlSU1PT1YuLiyMkJISBAwfSqFEj7t+/T1hYWIZ1M/Ppp58SGhpKcHAwAH///TedOnUiKioKXV1d1Go1Go2GsmXLYmhoyMGDBwGIjIzE09OT69evZ3uNtOmQadq1a8fWrVvRaDRUrVpVOX78+HHi4+NJTU1lz5491KtXD1NTUz799FM2btyo3POAAQM4fvx4ju/xfScjScRH5V5EGJ+5TUx3/J9TzzO0FetmviDRn3umvLW4hBBCiPxOR0eHKVO0/xa+uJ2vh4cHHh4embZfu3btW4tNCCFeR+fOnZkzZw579+5Fo9FgZ2fHzZs309UzMzPD09OT3r17Y2RkRLFixbC3t+fu3buUKlUqR9f65JNPmD59OkuXLiUpKYnU1FQmTJiApaUlarWaqlWr0q1bN5YtW8asWbNYtGgR69evJyUlBS8vL6pVq8aFCxeyvEbt2rWVbYS7d+9OpUqVMDMzo02bNlr1ChcujLe3NzExMTg4OCjTkXx9ffHz88PT05Pk5GRcXV1p1qxZju7vQyBJEiGEEEIIIYQQHyxLS0sOHz6caflnn32mNT3wRf7+/lqv+/XrR79+/TKs++I1unTpolUWEBCgfF29enWt6TZpdHV1Wbp0qfLa3Nw83fXh+fTHdevWZRgDPF9rxMXFRXl99+5dYmJiaNq0qVY9a2trrek3aSwtLZk7d26m5//QSZJEiPeMVbkK3IsIy7S8ZMmSmZYVK25J8MU/3kZYQgghhBBCiHxm1apV7N69m1GjRilrjIisSZJE5Bnn6o6ERURmWp7Vm30dAx1SkzKf+5dV2/edTBkSQgghhBBC5ETfvn3p27dvuuN9+vTJg2jeD5IkeU/lRYJBV08fdUpylnFl1jajEQxhEZH87uucru6ANSEAfNerSqbXqel7DnwzKFjz///tlUnDjNrkgc+qf0ZURFSWdT7kRI8QQgghhBBC5EeSJHlP5UWCQe2bnOEIBsh+FIOMYNAWFRGVecLmPUn0CCGEEEIIIcSHRrYAFkIIIYQQQgghhEBGkoiPUFajWjIrK1758wyPz5s3Dz8/vzcSlxBCCCGEEEKIvCVJEvHRyWzKUHYi//4t3TFvb2+8vb3THXd3dwdg27ZtGZ5L1hsRQgghhBDvE8dqdtzNYk3E11XasjgXL11+a+cXIqckSSLEe+hNjoYRQgghhBAiO3czWRPxTanpey5H9SIiIujYsSMVKlQAQKPRYGxsTMeOHWncuHG27c+ePcvs2bMpXLgwS5cuxdDQ8JXijIiIwNPTk8OHDxMeHo6/vz8zZsx4pXPkF7NmzaJNmzZUqZL5epYfI0mSCPEeepOjYYQQQgghhHifGBoaEhgYqLy+d+8ew4YNQ0dHBxcXlyzbHjlyhNatW9OzZ8/XjuPevXvcuXPntc+TV86dO8dXX32V12HkO5IkEeI1vM5WzPwC/JrFyX1zG5UQQgghhBAfjxIlSuDl5cWGDRtwcXEhOTmZZcuWERwcTGpqKpUqVWLEiBHs3LmT3377DUNDQ+Lj4+nSpQtz5szh4cOHPHz4kBIlSjB16lQ++eQT3N3dmTZtGra2tgDK60KFCgGgVquZNWsWUVFRjBgxggULFmjFNGTIECpXrsylS5d4/PgxzZo1w8vLC4DAwEBOnDhBYmIiCQkJDBkyhIYNG7J69WouX77MgwcPqFixIkOHDs0yPldXV/744w/i4uLo2rUrf/31F9evX0dXV5fZs2djYWFBVFQUfn5+REZGkpKSQuPGjenRowcrVqzgwYMHTJ48mQkTJmBlZcXChQu5desWKSkpVK9encGDB6Onp0ejRo1o0KABN27cYNKkSZw8eZLffvsNPT09zM3NGTduHEWLFn23P/S3SJIkQryG3G7FXNP3HLjw/N+r8s1FGyGEEEIIIT5gFStW5NatWwCsXbsWXV1dAgICUKlUfPfddyxfvhxvb2/+/fdfKlSoQJcuXdi8eTN2dnZ069YNjUaDt7c3Bw4coHPnztleT1dXl7Fjx+Ln55cuQZLmzp07fPfddyQkJNCvXz9sbW2xtrbm/Pnz+Pv7Y2hoyOHDh/n+++9p2LAh8Hx0ytq1a9HT08s2vqSkJFatWsXhw4eZPHkyAQEBVKpUCR8fH4KCgujRowdTpkzBw8OD+vXrk5iYiLe3N6VLl6Z///4cOnSISZMmYWtry4wZM7CxsWH8+PGo1WqmT5/Opk2b6Nq1K8nJydSrV4+pU6cSGRnJ5s2b2bt3LwYGBvz0009cvXqVzz//cKb2S5JE5Kms5h5mVubVUBY9FUIIIYQQQvyPSqXCyMgIgFOnThEfH8+5c8/fT6SkpPDJJ5+ka9OxY0eCg4PZuHEjoaGh/Pvvv3z66advLKavvvoKPT09zMzMcHFx4ezZs9SrV48JEyZw8OBBwsLCuHLlCgkJCUqbTz/9FD09vRzF16hRIwBKlSpF4cKFqVSpkvI6Li6OhIQEgoODiY2NZdWqVQAkJCRw48aNdOu3nDx5kqtXr7J3714AEhMTtco/++wzACwsLKhYsSK9evWiTp061K5dmxo1aryx71l+IEkSkadyu/jT97+Gv+FIhBBCCCGEEO+ra9euKYu5pqam8vXXX1OnTh0Anj59SlJSUro2y5Yt4+rVq7Rq1QonJydSUlLQaDTA86TLi5KTk185Jl1dXeVrjUaDjo4O169fZ+zYsXh4eFCzZk0cHByYN2+eUs/Y2DhH8QHo6+srX6clVl6UmpqKRqNhxYoVSgIpJiYGAwODDOtOmzaNcuXKARAXF6f1PUiLS0dHh6VLlxISEsK5c+dYvHgxtWrVYvDgwa/67cm33lmSJDU1FV9fX65fv46BgQHTpk3DyspKKd+9ezdr1qxBR0cHd3d3unTpAkCbNm0wMzMDoHTp0sycOfNdhZzvySiM/CE3Pwfx8ciq74uKimLkyJFK3WvXrvHNN9/kaIinEEIIIYR47s6dO/zwww8MHz4cgJo1a7Jt2zZq1KihrM9hbGzM2LFjtdqdPXsWLy8vGjRoQFRUFOfOnaN58+YAFCpUiJCQEGxtbblw4QLR0dHprqurq0tKSkqmcR06dIjatWsTHx/P0aNHGTVqFMHBwVSpUoVOnTqhVquZP38+qampGbbPKr6cMDU15dNPP2Xjxo307NmTuLg4BgwYQK9evWjWrBm6urqo1WoAatWqxaZNmxg9ejTJycmMGTOGWrVq0aNHD61z3rhxA19fX1atWoWtrS1FihRh//79OY7pffDOkiSHDx8mKSmJTZs2ERwczKxZs1i+fLlSPmfOHPbu3YuJiQktW7akZcuWSrZr7dq17yrM94qMwsgfcvNzkOTJxyOrvs/CwkLp3y5evMiCBQvo2LFjXoYrRL4wdepUpk2b9srtRo4cibe391uISAghRH6SmJiovHnX0dHBwMCAAQMGULduXQB69eqFv78/PXv2VBZuHTp0aLrzpNVbtWoVenp6VKtWjbCwMAAGDhzIvHnz2LlzJ1WqVMHGxiZd+/Lly2NoaIiXlxerVq1KN/okMTERLy8vnj59Stu2balRowYVKlTg2LFjdOnShdTUVOrVq0dsbCxPnjx5pfhyytfXFz8/Pzw9PUlOTsbV1ZVmzZoB0LBhQyZPnoy3tzfDhw9n4cKFeHp6kpKSgrOzM127dk13vkqVKtG4cWP69OmDsbExhoaGjBgx4pViyu/eWZLkjz/+oEGDBgA4ODhw+fJlrXIbGxvi4uLQ09NDo9GgUqkICQkhISGB3r17k5KSwsiRI3FwcHhXIQshxGvLru+D58Mvp06dyrx587SGZQrxsZowYQKDBg1Kd9zd3R2Abdu2veuQhBDio1fasvhb/aCvtGXxHNWztLTk+PHjWdYxNDTkm2++ybBs/PjxyteNGjVS1vV4WfXq1fnpp58yLDt8+DAABQsW1NqK+GVNmzZNtyVx4cKFtQYLAEoCp0+fPlrHs4rvxb+Ftra2Wq+HDBmifG1pacncuXMzPMfgwYO1psn4+vpmWO/kyZNar3v37k3v3r0zrPsheGdJkvj4eAoUKKC8ThualDZ3qlKlSri7u2NsbIyrqysFCxbEyMiIPn360KFDB/777z/69u3LgQMHMpxv9eJ5ixQp8tbvJzf09PTybWzvwhu/d99clr2GD+Hn9yHcw/sku74P4OjRo1SqVEmZR5ud/NrPfQh9nNxD/pDZPaTNvX7f708IId5HFy+l/6BHiA/RO0uSFChQQGsIUWpqqvImISQkhGPHjnHkyBFMTEwYNWoU+/fvp3HjxlhZWaFSqShfvjyFChUiKioKS0vLTK+jVqsznC+WHxQpUiT/xOabu7J7148R+fdvmZb/uWdKpmVv/N5931GbF+Sbn99ryO4esvr9Eq8uq74vze7du+nevXuOz5lf+7l81cflktzDmzNv3jz8/Pxeud3IkSOZOXNmhveQtmje696f9HNCCCHeNn9//7wOQeTSO0uSODk58csvv9CiRQuCg4OpXLmyUmZmZoaRkRGGhobo6upSuHBhYmNj2bp1K3///Te+vr5ERkYSHx+PhYXFuwr5w+abuzYlbBpRwqbRKzfNKnkixIcsq74vzZUrV3BycsqD6IR4e7y9vTNcHyQnU2asylXgXkTmc65Llsx4EfJixS0JvvjHK0YqhBBCCPE/7yxJ4urqysmTJ+nUqRMajYYZM2awZ88enj59ioeHBx4eHnTp0gV9fX3Kli1L27ZtAfDx8aFz586oVCpmzJiR5VQbIYTIb7Lr+x4+fIipqWm6hb6E+JjdiwjjM7eJ6Y7/c+r5vO+KdXukKwNJyAshhBDi9b2zjIOOjg5Tpmg/vFhbWytfd+7cOcNtL+fPn//WYxNCiLclu76vcOHC7Nq1612HJd4DuZ2u0qBBg2wXtMvIm94Z5rPqnxEVEZVpeWajQUT+ldWW5gAHDx5k5cqVqFQqPDw86NChA8nJyXz77beEhYWRlJTEwIEDady4cR7ehRBCCJE1GZYhhBBC5EO5na6S2Zok73pnmKiIqIyndq75///2yqKxb9ajQmTEyKt59OgRW7Zs4fz580RERJCUlISxsTHFixfH2dmZ9u3bU6hQoWzPk9WW5mq1mvnz57Nt2zZMTExo0aIFjRs35pdffqFQoULMnTuXR48e0bZtW0mSCCGEyNckSSKEEEK8Ja+zeOmbHNXxPspouk12JHmS3l9//UWfPn0wNzenRo0a2NraYmBgQFJSEvfv32fTpk2sXr2aNWvWUKVKlSzPldWW5rq6ugQFBaGnp6ck6UxNTWnevDnNmjXTqieEEELkZ5IkEUIIId6S3I4G+az6Z9kmVzKbrqKrp486JfmV24EsfPohmjZtGs2aNWPKlCkZrn2k0WiYMGECU6ZMYcOGDVmeK7stzfX09Dh06BBTpkyhYcOG6OnpYWhoqLQdNmwYw4cPz1HcstX52yP3kD+8j/dQtVrVLKdRvi4LSwuuXrr61s4vRE5JkkQIIYTIZzKdqgLZTldR+ybnatFTeAsjMXxzUdbwzYbwsQsJCWHmzJmZLg6tUqno1auXkrjLSk62NG/atClNmjRh7Nix7Ny5E3d3dyIiIhg8eDBdunTBzc0tR3HLVudvj9xD/vC27+FtbHWe5d+mN3F+35wlYCIiIujYsSMVKlQAnvdFRkZGDB06lGrVquXq2uHh4fj7+zNjxoxctX85Pk9PTw4fPsyOHTuIj4/H09MzXb0mTZqwdu3aLH9W165dY8+ePYwePZpr166xbt06pk+f/toxvg/i4+Px8fFhyZIl7/zakiQRQgghxNvhm8t2v77JID5ulpaW/PHHH8qbiYycOXMGCwuLbM+V1Zbm8fHxDBgwgICAAAwMDDA2NkZHR4cHDx7Qu3dvJk6cSJ06dd7IPQkhhKGhIYGBgcrrI0eOMH36dDZt2pSr8927d487d+68qfAUaTu25tatW7eIinqePLK1tf1oEiQAcXFxXLt2LU+uLUkSIYQQ4i1xru5IWERkpuXvww4vuV1XReQPgwYNYty4cVy4cIFatWpRvHhxZU2SqKgozp07x44dO5g6dWq258puS3M3Nze6du2Knp4eNjY2tG7dmpkzZxIbG8uyZctYtmwZAKtWrcLIyOht37oQ4iMSGxurNX3pxIkTBAYGkpycjJGREUOGDMHOzo7bt28zc+ZMkpKS0Gg0uLm58dVXXzFr1iyioqIYMWIECxYsUM5z584dBgwYwK5du9DX10etVtOuXTsWLVpEfHw8y5YtIzk5mejoaJydnfHx8dGKa/Xq1cTExPDNN98QHBzMggULUKlU2NrakpqaCjwfCbN48WKuXLnC06dP0Wg0jB07luLFi7N69Wri4+OZPn06X375JX5+fqxbt474+Hjmz5/PjRs3UKlU1K5dm/79+6Onp4eLiwvdunXj999/Jzo6mq5du2aYrPn888/p1q0bZ86cISEhgf79+9OoUSMSEhKYN28eoaGhxMbGYmJiwqRJk7CysmLIkCGYmZlx584d2rRpg62tbYbfg4iICIYNG4azszMhISGo1Wq8vLzYtWsXt2/fpkqVKkyePBkdHR3++usvli1bxrNnz9DR0aF3797Uq1eP6dOnk5iYSI8ePQgICCA0NJSFCxcSGxuLWq2mQ4cOtGrVigsXLrBo0SKMjIxISEhg2bJlzJo1i9DQUHR0dLCxsWH06NHo6Ojk+P8nSZIIIYQQb0lYRCS/+zqnOz5gTQgA3/XKeKHMmr7n4BeyHlHhm3lRbnaGKV758wyP53ZdlfchAfQxaN26NUWLFmX16tVMnjyZhIQEpczY2BgnJyeWL1+uLMialey2NPfw8MDDw0OrfPz48YwfP/4170IIIbSlvXmG5yMOoqOjmTVrFgChoaGsWLECf39/zM3NuXXrFsOHD2fTpk1s2LCBevXq4enpSXR0NIsWLaJNmzaMHTsWPz8/rQQJQNmyZSlfvjwnTpzAxcWF33//nZIlS1KuXDkmTZqEl5cXTk5OPH36lA4dOhASEoK5uXm6eJOTk5kwYQKTJk2iRo0a/Pzzz+zevRuAq1ev8uDBA1asWIGOjg5r165l3bp1zJkzhz59+nDs2DEl2Z1mwYIFmJubs3btWpKTkxkzZgw//fQTnp6eJCUlYW5uzooVKwgJCWHgwIG0aNFCWSMqjVqtxtDQkICAAP755x8GDx7MZ599RnBwMAUKFGDlypUAzJkzh23btjFy5EgAChYsyPr16wGy/B6Eh4dTp04dRo8ezdy5c1m0aBGBgYHo6enRoUMHrly5gpWVFdOnT2fBggVYWloSFRVFv379sLa2Zty4cXh6ehIYGEhKSgrjxo1j4sSJ2NjYEB8fT//+/SlXrhzwfMTNli1bKFGiBAcOHODp06cEBgaiVquZO3cuPDZXbQAAIABJREFU4eHhlC5dOsf/f0mSRAghhMiPXP7/36vyzd3OMACRf/+Wq3Yif6tbty5169ZFo9EQGxvLs2fPMDQ0zNG2v0IIkR+9PN3m3Llz+Pj48OOPP3Lu3Dmio6MZNmyYUq5Sqbh79y6ff/45U6dO5erVqzg7OzNixIhsRxi4ubkRFBSEi4sLQUFBytpK48eP5/Tp0wQGBnLnzh0SExNJSEjIMEly8+ZN9PT0qFGjBvB8ZN6cOXMAsLOzo2/fvuzatYuwsDAuXLiAiYlJljGdOXOG7777DpVKhYGBAW3atGHz5s3K2idpiW8bGxuSkpKUfv9l7du3B6BixYpUqFCB4OBgXFxcKFmyJFu2bCEsLIyLFy9iZ2entHlx3Zesvgd6enrUr18fgFKlSmFnZ4epqSkARYsWJTY2lsuXLxMdHc3YsWOVc6pUKm7evKk1TTQ0NJTw8HCtNWMSExO5ceMGVlZWFCtWjBIlSijxrVixgiFDhuDs7EzHjh1fKUECkiQRQgghhPjg3b9/nz/++IN79+6RmJiIsbExJUqUwMnJKUfrkQghRH7m7OxMqVKluHr1Kmq1murVq2tNI4yMjKRo0aJUqlSJTZs2ce7cOc6fP09AQAABAQFZntvFxYUlS5bw33//cfHiRcaNGwc8n85YsWJFatWqRePGjbly5QoajSbT87xclrYl+qlTp1i4cCGdO3emfv36lC1blkOHDmUZk0aj0VqQOzU1lZSUFOV1WkIkrU5mcb24LbtGo0FXV5cdO3awa9cu3N3dcXX9P/buPK7mtP8f+OssbUraMGVJKFuSfSxNYrIbNdYytkTWGWIwKAdJxJehIbkxZMtYIvvNhBmMCYWQfTAhETMlVOec3x9u5zdNndN+Pqe8no+Hx33O5/pc57wu4746vc/nc13uMDU1xePHj1Xn/bOAo+nvQE9PL1fGfy/0/SF3nTp1sG7dOtWx1NRUmJubq9Zi+XCesbFxrsJYWloajI2Nce3aNRgZGamO29jYICoqCvHx8bh48SImT56M6dOnqwo2hcEiCRERURlqI4srVpuuqAjrqnzMMjMzMXfuXBw4cAASiQQWFhaqNUnS0tKgVCrRt29fyGQy6OvrCx2XiKhYHj58iKdPn8LBwQFyuRzr16/HgwcPYGtri7Nnz2L+/PnYs2cPlixZAicnJ3z55Zfo1KkT4uPjkZycrNrSPD8GBgbo0qULFi5ciE6dOsHQ0BDp6elISkrCsmXLYGpqikuXLiE5OVm1zsi/1a9fH0qlEmfPnkX79u3xyy+/ID09HQDw+++/o0OHDvD09MS7d++wdetWyOVyAO8LC/nlatOmDXbt2oVvvvkG2dnZ2L9/P1q3znt7b0EOHz4MT09P3Lx5Ew8ePICzszOCg4PRs2dP9OnTB+np6Vi2bJnqtpZ/KurfQX6aNGmCR48eISEhAc7Ozrh16xbGjRuHLVu2QCKRQC6XQ6lUonbt2jAwMMDRo0fRrVs3pKSkwMfHB4sWLcrzmnv37sXly5cxd+5ctG3bFmlpabh16xaLJEREpSU1NRUrV65EQkICsrKy8rQfPXpUgFRUnuS3JklBdKl4UqJ1VUhwixYtwpUrV7B582a0aNEi17eGcrkcFy5cQGBgIIKDgyGTyYQLSvSRWbBgAYKCgorcz9/fP991orShqnXVQm/TW9zXL6x/rkkCvL8KYvr06ahduzYAYPr06QgMfH/rqUQiQUhICCpVqoQRI0YgJCQE+/btg1gsxmeffQZnZ2ekp6fDwMAAvr6+WLduXZ5t07/44gvs3r1b9XdfuXJlDB06FD4+PjA0NES1atXQtGlT/Pnnn6hRo0aevFKpFCEhIQgNDcXatWthb28Pc3NzAO93wJk7dy6GDh0KuVyONm3a4OTJk1AoFGjSpAk2bNiA7777DgMGDFC93ocFZocOHYqcnBy0bds2199HYV29ehX79++HQqHA/PnzYWpqCi8vLyxZsgQHDhyAUqmEo6Mj7t69m6dvUf8O8mNubo6FCxfihx9+QFZWFhQKBQICAmBtbQ25XI7GjRvjq6++Ui3G+v3332Pr1q3IycmBr68vnJyccq3VAgDdu3fHpUuXMGTIEBgaGqJ69eqq24oKS6TUdE1QOZSVlaWz+6aX5n7oNjY2xfrgDfzvg6usGB1lxb/P/XLM/FyXaQEf9xiKnR8o9TH8m6a92j9G48aNw6VLl9C3b1+YmprmaZ84caLWM+nqPFeac5xQSnsMFWGOUDeGQhVJZMWKUewxFGaOAz6uea5169YIDw9Hy5Yt1Z5z4cIFTJw4Eb/99psWk2nGea7scAy6Qd0YCloUu7BKOs9du3YN1atXL9FrkG7r0KEDDh48+NGuT5WSkoImTZrk28YrSYiINLh48SJWrFiB9u3bCx2FiKjIJBIJ9PT0NJ4jFotVl3YTlQe6chVGcbdI9/f3z/c2ASLSDSySEBFpoK+vz29SiKjccnd3x6xZsyCTydC8efM8i/R9WITQ3d1dwJRUnpWkUFDcgkVAQADGjx+f53hpXYVRWMXdIp1IF5w5c0boCDqLRRIt0pWqNxEVnre3N1auXImQkJBcK2cTfUzK++KzH7PZs2cjICAAw4YNg1gshqWlJQwMDFS3s8jlcnTv3h0BAQFCR6VyioUCIqpoWCTRIl2pehNR4V26dAnnz59H69atUbVq1Ty7P3DhVt1U3G8258yZg8zMTK1/K6rryvvisx8zQ0NDhIaGYtq0abh06RJSUlLw5s0bGBoaqrYA5tVyRERE/x+LJEREGjg7O8PZ2VnoGFRExf1m88NCevxWlCqa6tWro0ePHkLHICIi0nkskhARaSDE7jX0nhD3uRMRERHRx41FEiKiAvz3v/9FREQEbt++DalUivr168PHxwddu3YVOlqFxvvciUouJSWl0OfythvStpLcGpnfLexUthybOiHl6ZMye/3qn1gj8eqVMnt9osJikYSISIPDhw/D398f3bt3h4eHBxQKBS5cuIApU6Zg+fLlLJQQkU7r3r073r59q/EcpVIJkUiEGzduaCkVCUmXNhIo6a2RpF0pT5+gWZ/AMnv9yzHzi3T+3r17ER0djZycHABAgwYNMGbMGHzyyScF9p08eTJkMhnMzMwwdepUTJw4EXZ2dsXK/U9BQUGoW7cuvL29S/xa2rZhwwbY29vDxcVF6CiCY5GEiEiD1atXY/LkyfDz81MdGzp0KCIiIhAeHs4iCRHptH379sHHxwdVqlTBjBkzhI5DOoAbCVBFEBYWhtu3b2PJkiWoXr06FAoFjh49Cj8/P6xbtw7VqlXT2D8u7v8vLr5s2bKyjlsuXLp0qVQKRRUBiyRaZFunLp4+SVbbbmNjk+/xatWtkRB/saxiEZEGDx48QPfu3fMc79atG3744QcBEhERFV7t2rWxbt069O/fH2lpafnOZ1Q+8VYV+lg9e/YM0dHR2LNnD0xNTQEAYrEYPXr0wM2bNxEZGYmpU6eiX79++PzzzxEXF4eMjAx4eXnB09MTCxcuBABMmjQJS5cuxfjx4xEUFIQ3b94gPDwc1atXx8OHD2FkZISvvvoKP/30Ex49egRXV1d88803UCgUWLlyJa5du4bMzEwolUrMnDkTTk5OajMHBQXBwMAAt2/fxsuXL9GmTRtMmTIFUqkUBw4cwL59+5CdnY2///4bQ4cOhaenJw4ePIgDBw7g7du3MDY2RmhoKJYuXYpHjx7h77//RqVKlTB37lzY2tpi4sSJaNCgAa5du4aXL1/iiy++QFpaGuLj4/H27VssWLAA9erVQ0ZGBlasWIF79+4hJycHLVu2xIQJE7Bv3z4kJSXhhx9+gFgsRvv27bF69WokJCRAoVDA3t4eU6ZMgbGxMfr164fGjRvj7t278PPzQ1paGqKjoyGVSqGvr4/p06eX+2ILiyRa9PRJcr6XqN05uwkAUL/98Hz7FfXSMyIqPdbW1rh16xZsbW1zHU9KSoK5ublAqT4OrVs2R/IT9espqCssA4BYXwxFlqLIfSVSPchzsjXmYkGbyhs7Ozt8/fXX2LVrF4skOqakC1TzVhX6GF27dg22traqAsk/tWrVCuvWrVM9T09Px/r165GamoqRI0fCyckJs2fPxqFDh7Bq1SqYmZnl6p+UlIRp06bBwcEBU6dORWRkJMLCwvD69Wv07dsX3t7eSElJwfPnz7F27VqIxWJERkZiy5YtWLJkicbc169fxw8//ACpVIopU6YgOjoaPXv2xP79+7F06VJUqVIFiYmJmDx5Mjw9PQEA9+/fx+7du2FsbIzY2FiYmJggIiICALBkyRLs3r0b/v7+AIAnT54gPDwc165dw5gxY7B48WJMmjQJ33//PXbt2oUZM2Zg5cqVaNCgAebMmQO5XI6FCxciKioKQ4YMQWxsLPr16wdXV1ds2LABEokEGzZsgEgkQnh4ONasWaOac+rWrYsFCxZALpejS5cu2LVrF6ysrHDkyBFcuXKFRRIiooqsf//+mDt3Ll69eoUWLVoAAC5evIgVK1Zg0KBBAqfTPaW5I03ykxT8Lmud59yxG5MAAOEjG6p9vTayOECWT8PG//3vyPz7yWXZau+3ZkGbyrPhw4dj+PD8/+2ScLhANVHxfFiH5N+ys3N/0fHll19CJBKhWrVqaNu2LX7//XfUq1dP7etaW1vDwcEBwPsvRUxMTKCnpwczMzMYGxsjPT0djo6OGD16NPbt24fk5GRcunQJlSpVKjBzz549Ved1794dv/zyC/r374/Q0FCcPXsWjx49wp07d/DmzRtVn/r168PY2BgA4ObmBhsbG/z0009ITk5GfHw8HB0dVee6uroCAGrUqAEA+PTTT1XP4+PjAQBnzpzB9evXceDAAQDAu3fv8s169uxZZGRkqG5LysnJyfXlYLNmzQAAEokEbm5uGDt2LNq1a4e2bdvC3d29wL8LXcciCRGRBj4+PkhJScG8efMgl8uhVCqhp6eHkSNHcnvgfPADPxEREZUlR0dH/Pnnn3jx4gUsLS1ztV26dAlNmzZVPZdIJKrHCoUCYrFY42vr6enlei6V5v11+ezZs1ixYgW8vLzQsWNH1K5dG8eOHSsw9z+zKJVKiMViPHv2DH5+fvjiiy/QrFkzuLm54cyZM6rzjIyMVI/37t2Lffv2oV+/fnB3d4epqSkeP36satfX1y8wu0KhQFBQEOrUqQPg/ZU2IpEo3/O++eYbtGvXDgCQmZmJrKysfHPNnTsX9+7dQ1xcHLZs2YKjR49iwYIFBf596DLN/0qIiD5yEokEc+bMwW+//YaoqCjs27cPFy5cgL+/f64fdkREuu7Ro0dYv3495s+fjyVLluDEiRNQKpUA3q+/tHLlSoETEn08bOvUhY2NTZ4/586dw7lz5/Jts7GxgXPzlkJHF1zVqlVVV/qmpqaqjh88eBAnT57EV199pTp25MgRAMDTp08RFxenurpCIpGovRqlIL///js6dOgAT09PNGrUCL/88gvkcnmB/U6cOIGsrCy8e/cOhw8fRocOHZCUlAQzMzOMGDECbdq0wdmzZwEg39c7f/48evbsiT59+qB27dr49ddfoVCov7U4P23btkVUVBSUSiWysrIwY8YM1RdY//w7adOmDXbv3o3s7GwoFAosXrwY4eHheV7v1atX8PT0hKmpKQYNGoTRo0dXiJ3SeCVJEZXkUnIiKh8uXbqEZs2aQSKR4NKlS7nacnJycO3aNdXzD7fgEBHpqg8fcLdu3YqOHTuiXr16SE9PR1BQEJYvX47vv/8eVlZW2L17NwwMDHLt5kWki4q7GQJQuutHNWvZDKlPUtW2a8oBoNytVVj9E+syff/qn1gX+txx48YhJiYGM2bMQFZWFrKzs9GoUSOsXbs21xbAjx8/ho+PD969e4fJkyer1phzc3PDxIkTERwcXOScnp6emDt3LoYOHQq5XI42bdrg5MmTBRYsDA0NMX78eKSnp6NTp07o1asXsrKycODAAXh5eUEkEqF58+YwMzPDn3/+mae/l5cXlixZggMHDkCpVMLR0RF3794tUvbJkydjxYoVGDp0KHJyctC6dWsMGTIEANCxY0eEh4cjOzsbI0eORFhYGEaMGKFauHXSpEl5Xs/MzAzDhw/HN998AwMDA0gkkgqxkxqLJEVUkkvJi1NcISLt8/b2xpkzZ2BpaQlvb2+IRCLVt63/JBKJKkS1nIgqtjlz5uDq1as4cOCA6hJr4H3xJDw8HEOGDEFUVBTCw8Ph5eWFnj17olatWsIFJipAcTdDAEq3yJD6JLVY618ByL+fjku8ekXoCLn06dMHffr00XiOt7c3GjVqlOf4vHnzVI//+fvbli1bVI+nTp2aq8+hQ4dUj3/88cdcbZMnTwbwfr5Vp2XLlvD29s51zNDQMM+Cr9OnTwcA2NraolevXqrjzZo1w9atW/N97bCwMNVjMzOzXLfs9O/fH/3791e1yWSyfF9jwIABGDBggOr5v8f/wb9/3/Xw8ICHh0e+55ZXWiuSKBQKyGQy3Lx5E/r6+ggKCsq1W8T+/fuxceNGiMVi9OvXD97e3gX2ISIqCydOnICFhYXqcUkUNI9duXIFISEhUCqVqFq1KkJDQ2FgYFCi96xI2sjiitzm66r5mzuij8nZs2dx/Phx7Nu3D1euXIGenp5qUT+xWIzx48cjLS0NixYtQnh4ONzd3bFt27Z8vwksaD47evQoIiIiIBKJMGjQIAwYMICf5YiIqNzRWpHk+PHjyMrKQlRUFBISEhASEoI1a9ao2j9cOlSpUiX06tULvXr1wvnz5zX2KYnS3IGhKDRVr7kzApFu+PALxL8fA+9XTU9KSoKdnR1MTEwKfC1Nc59SqURAQABWrlwJW1tb1WrldevWLd0BlWP57W5TGP859bjgk4g+Aj/99BMGDhwIa2tr9O7dG5mZmTAzM4OjoyOaNm2KJk2aoGbNmqpvBt3d3fO97xzQPJ/J5XIsW7YMu3fvRqVKldCzZ0906dIFFy5cKLPPckREmujSYvGarjAh3aO1IsnFixfh4uICAHB2dkZiYmKu9gYNGiA9PR1SqRRKpRIikajAPiUh1A4M6raW1ITFEyLhJCcnY/bs2fD390eDBg3g5eWF69evo0qVKli/fn2urdfyo2keu3//PszMzLBp0ybcunULrq6u5bpAUtA94oD6+7NL8x5xFVnx2p7ePImUW6fVtnNOpvLk8uXLGDp0KABg8+bNGDNmDNq3b6+6HHv16tUQiURo0KABAKBOnTpITs7//8ea5jOJRIJDhw5BKpXixYsXAABjY+My/SxHRERUFrRWJMnIyMj1reuH1XM/bE1kb2+Pfv36wcjISLWlUUF98iORSPJsBVUUH7Z9KuprFLdfYZXV62oTx6AbKsIYtCk4OBjZ2dmwsrJCTEwMHj58iJ07d2LPnj1YvHgxIiMjNfbXNI+9fPkS8fHxCAgIgK2tLcaOHQtHR0fVdmvqlHSeKyvq7hEHCrcQXamPSVa8Pp806IRPGnQqctcyGYMAyvsYynv+0paamqpaxDAgIACBgYHo1q2bqv3kyZOYOXMmQkNDAQCmpqZ4/fp1vq9V0OcyqVSKY8eOYf78+XB1dYVUKi3WZ7kP5+nif0upVKqVXCX5XFlQX3VjKO3PsmU5hpLSxX9bRaGt/B++uCaqaPJba/CftFYkMTExyfVDV6FQqH5AJiUl4eTJkzhx4gQqVaqEb7/9FocPH9bYRx25XK76BqM4srOzAaDIr1HcfoVVVq+rTRyDbihoDNbWhV9Z/GNw/vx5bNu2DTY2Njh58iRcXV3h5OSEKlWqFGqRKk3zmJmZGWxtbVG/fn0AgIuLCxITEwsskpR0ntNVFWFMHIPwCpP/Y5rnDAwM8Pfff8PGxgZ//PEH7OzscrV36tQJ48aNw4IFC7B582b89ddfMDY2zve1CvO5rGvXrvj8888xc+ZMREdHF+uzHKC785ylpaVWcpXkc2VBfdWNobjv2bplcyQ/SVHbrm6dLbG+GIoszbuBlNUaXbr4b6sotDHPGRsb49WrV6hcuTIkEgmLJVRhKJVKvH79GoaGhmrP0VqRpEWLFoiNjUXPnj2RkJAABwcHVVvlypVhaGio2jbIwsICf//9t8Y+JVHQZA6ovyS8oAm9oK2+iKh8USqVMDIyglwux2+//YbvvvsOAPD27Vvo6+sX2F/TPFarVi28fv0aDx48gK2tLS5cuKBafZyIqDTY2dkhKSkJDRs2RMeOHbF27VosWbIEEolEdU6NGjVw9epVAMC9e/fU7myjaT7LyMjA2LFjsWHDBujr68PIyAhisbjMPsuR7kh+kpLv+lFjNyYBAMJHNsy3XxtZnPor/graHUZdPyo1tWvXxvPnz5GWlga5XC50HKJSZWhoiNq1a6ttL7BIkpKSAktLy1xV/wsXLqBGjRpFqlC6u7vjzJkzGDx4MJRKJYKDgxETE4PMzEwMGjQIgwYNgre3N/T09FC7dm14enpCKpXm6VMa1E3mQAkm9Aq61RfRx87Z2Rnr1q2Dubk53r59Czc3N6SkpGD58uVo3rx5gf0LmvsWLlyIqVOnQqlUonnz5ujUqVPZD4qIPhpubm6IioqCh4cHZs+eDW9vb3Tt2hWDBw+Gg4MDUlNTERYWhrZt2wIAYmNj0apVq3xfq6D5rE+fPhgyZAikUikaNGiAL774AiKRqEw+y1HxFbR+lKYv/Mpk/SjSSWKxGNWqVUO1atWEjkKkdRqLJBEREVi1ahU2btyY6wdmWFgYLly4gGnTpmHEiBGFeiOxWIz583MvdlevXj3VYy8vL3h5eeXp9+8+RETaNGfOHEydOhUPHz7EzJkzYWFhgaCgINy7dw8REREF9i9o7mvXrh127dpV6rlLori7fxGR7hkyZAi2bt2KrVu3YsiQIYiOjsYPP/yADRs24OXLl5BKpejatSvmzp2L27dv4/Dhw4iOjs73tQqazz586fVv/CynXkFXNxf3ymZNfYH8NxIoaO0ogAtXE9HHQW2R5PDhw1i5ciUmT56MJk2a5GoLCwvDli1bsHTpUtSqVQtdunQp86BEREKws7PDnj17ch2bOHEiZs+eXWHvzy3u7l+83ZBI91SpUgVr1qyBj48PMjIy4Ofnh5kzZ2LmzJl49eoVKlWqBH19fdy/fx/jx4/HV199lavwQWWLt6oQEeketUWSTZs2YfLkyfD19c3TZmJigrFjx+LNmzfYsGFDuSySRMQm4z+nHqttbyOL02IaItIlMTEx6NatG/T19RETE6Px3D59+mgpFRFR8Tg5OWHLli2QyWSIiopCnz590KBBA1SpUgUpKSn47bffcOzYMQwcOBAzZswQOi4REZGg1BZJ7ty5g5CQEI2de/Xqhe3bt5d6KG0Y41YDY9xqFLkfiydEFd+3336L9u3bw9LSEt9++63a80QiUYUskjRr2QypT1LVtmu6YuTpzZNIuXVabTsv1SYSRsOGDbFjxw788ssvOHbsGDZv3oxXr17B3NwcTZs2xdatW/NcOUz0seBtpkT0T2qLJB/2sdfYuRBbuBERlTdJSUn5Pv5YpD5JLd4C1TLgkwad8EmDTkV+TxZPiLTDxcUFLi4uQscg0ilC3Waq6Wcffy4SCUdtlaNhw4Y4ffo06tevr7bzyZMnUadOnbLIpdtkxWhzLf0YRKQdP/30EypVqoRevXoBeL8mSZcuXeDp6SlwMiKionny5AmuXLmC7OxsKJXKXG0V8co4Il2W3wK6BWHxhKjsqS2SeHl5YdasWbC3t8/3G4fTp09j1apVmDVrVpkG1EmyYvY7VZohiEgb1q9fj7CwMMhkMtWxevXqYf78+cjMzMSQIUOEC0dEVAQ7d+7EvHnzIJfL87RV1NsHqeIqzlUY1R0+K/0gsmK08ctTIp2mtkjSvXt3xMXFYfTo0XB0dISzszMqV66Mv/76CwkJCbhx4wb69euHAQMGaDMvEZFWbdu2DaGhofj8889Vx6ZMmYLGjRtj2bJlFbdIIitmGxHprI0bN+LLL7/E9OnTUblyZaHjEJVIca7CAKBx3axikRWzH788JdJZGhcVCQgIQPv27bFz504cOXIEf/31F8zNzeHs7IzJkyfjs8/KoBpLRKRDXrx4AXt7+zzHGzVqhKdPnwqQSEtkWupDRFrz+PFj+Pj4sEBCRESkQYErr3bp0qVcbvFLRFQaHBwcsH//fkyaNCnX8YMHD6Ju3boCpSIiKrqmTZvi1q1bsLOzEzoKERGRziqwSKJQKPDrr78iPj4eaWlpsLS0hLOzMzp27AixWKyNjEREgpkwYQLGjRuHuLg4ODk5AQASExMRFxeHVatWCZyOiKjwPD09MW/ePFy7dg22trbQ19fP1c41SYiIiAookty4cQNTp07FvXv3YGBggCpVqiA9PR1v3ryBnZ0dli9fjoYNG2orKxGR1rm6umLr1q2IjIzEqVOnIJVKUbduXfz0009o3Lix0PGIiApt9uzZAICIiIg8bVy4lYiI6D21RZInT57Ax8cHDg4OCA4OhrOzs6otMTERy5cvh4+PD/bu3Yvq1atrJSwRkRCaN2+O5s2bCx2DiKhEkpKShI5AlFssNC9gKtNSDiKif1BbJFm3bh3q16+PjRs35rmtxtHREevWrcPo0aOxbt06zJkzp8yDEhEJ5cGDB9iwYQPu3buHpUuX4vjx46hXrx4+/fRToaMRERWJUqnE6dOncfv2bUilUtjb2+PTTz+FRCIROtpHq40srlhtJaEz2+e6/e9PUclKOQcR0T+oLZKcPHkSCxcuVLvuiFgshp+fH7777jsWSYiowrp8+TKGDx+OFi1aID4+HllZWbhz5w6Cg4MRFhYGN7fifLojItK+ly9fwsfHBzdu3IC5uTkUCgX++usvNG7cGBs2bICZmZnQET9Kv8taF7lPSYsnOrN9LhGRDlJbJElNTUWdOnUutealAAAgAElEQVQ0dq5duzaeP39e2pmIiHTG0qVLMXr0aEyYMEF1y83cuXNhamqKVatWsUhCROVGSEgIFAoFDh48iHr16gEA7ty5g2+//RZLly5FUFCQwAmpSHirChFRmVBbJLGwsMCff/4Ja2trtZ0fPXqEqlWrlkkwIiJdcP369Xx/cejfvz82bdokQCIiouI5efIkVq9erSqQAED9+vUxe/ZsTJo0iUWS8kaHblUR4pYhIqKyorZI0qFDB4SHh6N16/wvAVQqlVi7di2/RSWiCs3IyAgvXryAra1truP379+HiYmJQKmIiIpOqVSiSpUqeY6bmZnhzZs3AiSiikKIW4ZKS+uWzZH8JEXjOTY2NlpKQ0S6QG2RZPz48fjyyy8xceJETJo0CQ0aNFC13b59G8uWLUNSUhKCg4O1EpSISAi9e/fGokWLEBISApFIhHfv3uHcuXNYsGABunfvLnQ8IqJCc3Z2xrp16xAcHKxaqFUulyMiIgJOTk4CpyMSRvKTFLVFnrEb3+8IFT6yYb7tulLoIaLSpbZIUrNmTfznP//B5MmT4eHhASMjI1SpUgWvX79Geno66tWrh/Xr16NatWrazEtEpFX+/v6YPn06evXqBQDo06cPAKBHjx6YOnWqkNGIiIpk2rRp8Pb2hru7u6oocuXKFWRkZGDDhg0Cp9Ou2ra1kZOdo9X3lOrp4eGDB1p9TyIiKjq1RRIAcHJywrFjxxAbG4vLly/j77//hpmZGVq2bImOHTtyuzgiqvDu3r2L5cuXw9/fH9evX4eenh7s7e1Ru3ZtoaMRERWJg4MDoqOjsW3bNty5cwcGBgbo27cvvvrqK1haWgodT6tysnOKtzaHrPg7w2jadpeIiHSHxiIJAEilUri7u8Pd3T3f9pSUFFSvXr3UgxER6YJRo0YhPDwcTk5OLIwQUblXs2ZNTJ8+XegYREREOktjkeTJkyc4ceIEpFIpOnfunOfWmm3btmH58uWIi+P9eERUMZmamiIrK0voGERExeLj44Pvv/8elStXho+Pj8ZzC7rlRqFQQCaT4ebNm9DX10dQUFCuRa0PHDiATZs2QSKRwMHBATKZDHK5HDNnzkRycjLEYjEWLFiQa3cdIiIiXaO2SHL27FmMHz8eb9++BQCEhoZi69ataNiwIR4+fIgZM2YgPj4e7dq101pYIiJtc3Nzw+jRo9G5c2fUqlULhoaGudrHjh0rUDIiooJVr14dIpFI9bgkjh8/jqysLERFRSEhIQEhISFYs2YNAODt27dYsWIFYmJiYGRkBH9/f8TGxkKpVCInJwc7duzAmTNnsGLFCqxatarE4yIiIioraoskK1euRLNmzbB48WLo6elhwYIFWLJkCcaPHw8/Pz9IpVIEBwfjyy+/1GZeIiKtOnr0KMzNzREfH4/4+PhcbSKRiEUSItJpixYtyvdxcVy8eBEuLi4A3u+Uk5iYqGrT19fHjh07YGRkBADIycmBgYEBrK2tIZfLoVAokJGRAam0wDu9iYiIBKX2J9Xt27exceNGfPLJJwCAwMBAdOrUCVOnTkXr1q2xcOHCj26RLyL6+Pz8889CRyAiKjUXLlxA3bp1YWFhgYMHD2L//v1o1qwZxo4dC7FYrLFvRkYGTExMVM8lEglycnIglUohFothZWUFAIiMjERmZiY6dOiAp0+fIjk5GT169MDLly8RHh5eqJwSiaRCfs6sCGPiGIRX3vMT6Tq1RZLMzEzY2NionltYWEAkEqFdu3YICQnRSjgiIl2gUChw7tw53Lp1CyKRCE2aNEHr1q2FjkVEVCRbt27FwoULsXHjRlSpUgXTp09Hhw4dsG3bNrx79w5TpkzR2N/ExASvX79WPVcoFLmuDFEoFAgNDcX9+/exatUqiEQi/Pjjj+jYsSOmTp2KJ0+eYPjw4YiJiYGBgYHG95LL5Xjx4kXJBqyDKsKYOAbhFSa/tbW1FpIQVUxqiyRKpVJ1D+sHYrEYI0eOLPNQRES64unTp/D19cWdO3dgYWEBuVyOv/76C82aNcPatWthZmYmdEQiokLZvHkz5s+fj7Zt22LJkiVo0KABIiIicO7cOcyaNavAIkmLFi0QGxuLnj17IiEhAQ4ODrnaAwMDoa+vj9WrV6uuSjE1NYWenh4AoEqVKsjJyYFcLi+bARIREZWCIt8YWqlSpbLIQUSkk2QyGUxMTPDf//4XtWrVAgDcv38fM2bMwMKFCxEaGipwQiKiwnn8+DE6dOgAAPj111/RuXNnAICtrW2hvpl2d3fHmTNnMHjwYCiVSgQHByMmJgaZmZlwdHTErl270KpVKwwfPhwAMGzYMIwYMQKzZs2Ct7c3srOzMWXKFH6WJCIinaaxSHL16lWYmprmOnbt2jWkpqbmOtaiRYsC30jTtnGpqanw9/dXnXvjxg1MnToVXl5e8PDwQOXKlQEANWvWLPGiY0RERXH+/Hls375dVSABADs7OwQEBBTqyrqCtszcuHEjdu3aBQsLCwDAvHnzULdu3dIfCBF99KpXr46HDx8iOzsbt27dQmBgIID3C7IW5tJ8sViM+fPn5zr2z+18k5KS8u33/ffflyA1ERGRdmkskowbNw5KpTLXscmTJ+d6LhKJcOPGjQLfSNO2cVWrVkVkZCQAID4+HsuXL8fAgQPx7t07AFC1ERFpm7m5OV69epXneE5ODoyNjQvsr2nuA94XnhcvXgxHR8dSzU1E9G8DBw7E119/DX19fdjb26NVq1bYunUrlixZkufzHRER0cdKbZHkxIkTpfpGmraN+0CpVGLBggVYunQpJBIJEhMT8ebNG/j4+CAnJwf+/v5wdnYu1VxERJrMmDEDc+fOxaxZs9CqVSvo6ekhMTERMpkMI0aMQEpKiurc6tWr5+lf0Nx37do1REREIDU1FZ06dYKfn1/ZDoiIPlpjxoxB/fr18fDhQ3zxxRcA3heC582bBw8PD4HTERER6Qa1RZIaNWqU6htp2jbug59//hn29vaqS80NDQ0xatQoDBgwAH/88QdGjx6NI0eO5Orzb9wyTndxDLqhIoxBm/z9/SGXy+Hn55drMWulUonFixdjyZIlqoWu87uqrqC5r1evXvD29oaJiQkmTpyI2NhYuLm5aczEeU53cQzCK+/5y9qHdUg+6Nmzp0BJiHRHRGwy/nPqsdr2NrI4LaYhIqEVeeHW4ipo2zgA2L9/P4YNG6Z6bmdnB1tbW4hEItjZ2cHMzAypqaka75vllnG6i2PQDQWNgVvG5bZx48YS9dc09ymVSgwfPly17pKrqyuuX79eYJGE85zu4hiEx60xc+vWrRuioqJgZmaGrl275tm58J+OHj2qxWREumOMWw2McSv6F8QsnhBVTForkhS0bRzw/rLzfy4Cu2vXLty6dQsymQwpKSnIyMhA1apVtRWZiAht2rQpUX9Nc19GRgZ69+6NQ4cOoVKlSjh//jz69etX0shERCp9+vSBgYGB6rGmIgkRERFpsUiiadu4QYMGIS0tDcbGxrl+ePfv3x/fffcdvLy8IBKJEBwcrPFWGyIiXVPQ3DdlyhQMGzYM+vr6aNeuHVxdXYWOTEQVyMSJE1WPJ02aBLlcjlevXqluS7p06RKaNm0KPT09oSISERHpFK1VHAraNs7CwgL79u3L1a6vr49ly5ZpJR8RUVkoaO7z8PDggolEpBX379+Hr68vunbtihkzZgB4X0QxNTXFunXrcm11TkRE9LESa2p8/vw55s2bl2v3BgCYO3cuAgMDkZaWVqbhiIiIiKh0BAUFoUmTJrl20Tp27Bjs7e0RHBwsYDIiIiLdobZI8uzZMwwePBj//e9/8yyCZmtri9jYWHh5ebFQQkRERFQOxMfHw9/fH2ZmZqpjJiYmmDx5Mi5cuCBgMiIiIt2htkiyevVqWFlZ4ciRI2jcuHGuNh8fH+zfvx+GhoZYs2ZNmYckIhJSXFwcRo0ahc6dOyM5ORmrVq1CdHS00LGIiIrEyMgIz549y3P85cuXEIs1Xlysk5YuXQobG5si/1m6dKnQ0YmISIep/Yl4+vRpTJkyBSYmJvm2m5ubY8qUKTh58mRZZSMiEtypU6fg6+sLGxsbPH/+HAqFAiKRCLNnz8bu3buFjkdEVGhdu3aFTCbDhQsX8O7dO7x79w4XLlzAvHnz8Pnnnwsdr8imTZuGx48f5/nTrl07tGvXLt+2x48fY9q0aUJHJyIiHaZ24dYXL16gZs2aGjvXr18/328kiIgqirCwMEyfPh1DhgzBgQMHAPz/hQ43bNjALXuJqNyYNm0avvnmG3z11Ve5dhPs3LkzvvvuOwGTERER6Q61RZJq1arh4cOHqFGjhtrOjx49Um0hR0RUEd25cwefffZZnuNubm68ZJuIyhVjY2P85z//wb1793D79m1IpVLUq1cPderUEToaERGRzlB7u02nTp0QHh4OuVyeb7tcLsfatWvRrl27MgtHRCQ0c3NzPHr0KM/xxMREWFlZCZCIiKhkTE1NYWZmhg4dOqBy5cpCxyEiItIpaoskY8aMwd27dzF8+HCcOnUKr169gkKhQFpaGmJjY/HVV18hKSkJY8eO1WZeIiKtGjhwIObNm4dTp04BAB4+fIhdu3ZhwYIF8PT0FDgdEVHhZWVlYdasWejYsSNGjhyJ1NRUBAYGYvjw4UhPTxc6HhERkU5QWySpWrUqfvzxR7x+/Rp+fn5o164dmjRpgg4dOmDcuHGQy+XYtGkTatWqpc28RERa5efnh88//xyTJk3CmzdvMGrUKMhkMvTr1w/jx48XOh4RUaGFhYXh6tWr2LZtGwwMDAAAvr6+ePr0KUJDQwVOR0REpBvUrkkCvF+Yde/evbhy5QquX7+Ov//+G+bm5nB2doa9vb22MhIRCUYkEuHbb7/FhAkTcPfuXejp6aFOnTowNDQUOhoRUZEcPnwYQUFBaNGihepY8+bNsWDBAvj7+2P+/PkCpiMiItINGoskHzg5OcHJyamssxAR6Zy4uLhcz9++fYurV69CJBJBT08Pn3zyCapXry5QOiKiwnv27BlsbGzyHLeysuLtNkRERP+jtkgSHh6efwepFFWqVEHTpk3RsGHDMgtGRKQLRowYAYVCAQBQKpUAkGvrTABo3bo1Vq5cCTMzM63nIyIqrEaNGuHEiRMYMWJEruM7d+7kZzoiIqL/UVsk2blzZ77HlUol/vrrL7x58wZubm74/vvvoaenV2YBiYiEFBwcjJUrVyIgIAAtW7YEACQkJCAoKAiDBg1CixYtEBISgtDQUCxcuFDgtERE6k2bNg2+vr5ISEhATk4O1q1bh7t37+Ly5cuIiIgQOh4REZFOUFsk+fnnnzV2TEpKgr+/P1avXo1vvvmm1IMREemClStXIigoKNd25y4uLpg3bx7mzJkDHx8fzJo1izt9EZHOa9WqFXbs2IH169fD1tYWV69eRf369TF37lw4ODgIHY+IiEgnFGpNkvw0bNgQ/v7+CA0NZZGEiCqstLQ0VKtWLc9xS0tLpKamqh5nZmZqOxoRUZHMnDkTfn5+xd7JRqFQQCaT4ebNm9DX10dQUBBsbW1V7QcOHMCmTZsgkUjg4OAAmUwGsViMtWvX4ueff0Z2dja8vLwwYMCA0hoSERFRqVO7BXBhNGjQAE+fPi2tLEREOqd58+ZYtmwZXr9+rTqWkZGBFStWqBa0PnXqVK5fFIiIdNHx48dLdIv08ePHkZWVhaioKEydOhUhISGqtrdv32LFihXYvHkzduzYgYyMDMTGxuL8+fOIj4/H9u3bERkZyc+NRESk84p9JQkAvH79GpUqVSqtLEREOicwMBAjR46Eq6sr6tWrB4VCgXv37sHU1BTr1q3DuXPnEBQUhGXLlgkdlYhIoz59+mDlypWYMGECatSoAam0aB8DL168CBcXFwCAs7MzEhMTVW36+vrYsWMHjIyMAAA5OTkwMDDAr7/+CgcHB0yYMAEZGRmYPn166Q2IiIioDJSoSLJ9+3Y0a9astLIQEemcOnXq4NChQzh06BBu3LgBiUQCLy8v9O7dG/r6+qhUqRJiYmJQr149oaMSEWl07tw5/PHHH4iJiYFIJIJYnPuC4n8WPfKTkZEBExMT1XOJRIKcnBxIpVKIxWJYWVkBACIjI5GZmYkOHTrgyJEjePz4McLDw/Hnn39i3LhxOHLkSJ5dwv5NIpHA0tKyWOP8cLVMcfuXJV3MVFQcg/DKe34iXVfkLYAVCgUyMjJw6dIl3LhxA1u3bi2zcEREusDIyAj9+vXLc/zp06ewsbERIBERUdH5+fmVqL+JiUmuWw8VCkWuq1EUCgVCQ0Nx//59rFq1CiKRCGZmZqhbty709fVRt25dGBgYIC0trcBf8uRyOV68eFGsnNnZ2QBQ7P5lSRczFRXHILzC5Le2ttZCEqKKqchbAOvp6cHU1BRNmjTBwoUL+e0pEVVojx49wuLFi3Hr1i3I5XIA77dCz8rKQlpaGq5fvy5wQiKiwvH09CxR/xYtWiA2NhY9e/ZEQkJCnh1xAgMDoa+vj9WrV6uuUmnZsiU2b96MkSNH4tmzZ3jz5g3MzMxKlIOIiKgsFXsL4PT0dOzbtw+TJ09GTExMqQcjItIFMpkMycnJ6NOnD9auXYvRo0fjwYMHOHz4MObPny90PCIijd69e4eQkBAcOnQIenp66N69O6ZOnapaO6Qo3N3dcebMGQwePBhKpRLBwcGIiYlBZmYmHB0dsWvXLrRq1QrDhw8HAAwbNgzu7u6Ii4tD//79oVQqERgYCIlEUipja92yOZKfpKht55V+RERUHEVek+TSpUvYuXMnjhw5grdv36Jhw4ZlkYuISCfEx8cjIiICrVq1QmxsLFxdXeHs7Iy6devixIkT3MqSiHTa8uXLER0djT59+kAikWDv3r14/fo1Fi1aVOTXEovFeYrD/7yiOCkpKd9+ZbVYa/KTFPwua53n+NiN73OEj1T/GbWNLK5MMhERUflXqCJJeno6oqOjsXPnTty5cwcA0KFDB/j6+uLTTz8t04BERELKyclBjRo1AAB2dnZISkqCs7Mz+vTpg+3btwucjohIs2PHjiEkJATdunUDALi5ueHrr7/GwoUL8yzcSkRERIDGn44XL17EjBkz4OLigoULF0JPTw/+/v4Qi8WYOXMmCyREVOHZ2tri8uXLAN4XST7s/vDmzRtkZmYKGY2IqEDPnj2Ds7Oz6nn79u3x7t07pKamCpiKiIhId6m9kqR37964e/cuGjVqhLFjx6JHjx6wtbUFAKxYsUJrAYmIhOTt7Y2ZM2dCoVCgW7du8PT0hJGRES5evMgt0IlI533YovcDqVQKQ0NDZGVlCZiKiIhId6ktkty7dw+2trZwc3NDq1atVAUSIqKPiZeXFywsLGBpaQl7e3ssXLgQkZGRsLKyQkBAgNDxiIiIiIioFKktkpw+fRr79u1DdHQ0Vq9eDUtLS3Tv3h3dunWDSCTSZkYiIsHMnDkTfn5+sLOzAwD07dsXffv2FTgVEVHhpaamIicnJ9ex58+fQ19fP9ex6tWrazMWERGRTlJbJLGyssKoUaMwatQoXLlyBXv37kVMTAy2bt0KANixYwdGjRoFa2trrYUlItK248ePY+LEiULHICIqNk9Pz1zPlUolvL29cz0XiUS4ceOGtqMRERHpnELtbuPk5AQnJyfMmjULx48fR3R0NLZv347t27fDzc0NYWFhBb6GQqGATCbDzZs3oa+vj6CgINUtPKmpqfD391ede+PGDUydOhWDBg1S24eISBv69OmDlStXYsKECahRo0aue/sLQ9Pc908BAQGoUqUKpk2bVlrRiYiwefNmoSMQERGVK0X6tK+np4cePXqgR48eeP78OaKjo7Fv375C9T1+/DiysrIQFRWFhIQEhISEYM2aNQCAqlWrIjIyEgAQHx+P5cuXY+DAgRr7EBFpw7lz5/DHH38gJiYGIpEoz5aZH3a7Uacw89iOHTtw69YttG7dutTzE9HHrU2bNkJHICIiKleK9pXoP1hZWcHX1xe+vr6FOv/ixYtwcXEBADg7O+f7i4VSqcSCBQuwdOlSSCSSQvUhIipLfn5+Jepf0DwWHx+Py5cvY9CgQbh3716J3ouIiIiIiEqm2EWSosrIyICJiYnquUQiybMt3c8//wx7e3vUrVu30H3+TSKRwNLSsgxGIKyKMCaOQTdUhDFo07/v5S8qTfPYs2fPEBYWhrCwMBw+fLjQr8l5TndxDMIr7/mJiIhIWForkpiYmOD169eq5wqFIk+xY//+/Rg2bFiR+vybXC7HixcvSim17qgIY+IYdENBY+BizHnFxcVh7dq1uHfvHiIjI7Fnzx7UqlULHh4eBfbVNI8dOXIEL1++xJgxY5Camoq3b9+ibt26+PLLLzW+Juc53cUxCK8w+TnPERERkTrigk8pHS1atMDp06cBAAkJCXBwcMhzzrVr19CiRYsi9SEiKkunTp2Cr68vrK2t8fz5cygUCohEIsyePRu7d+8usL+meWzYsGHYs2cPIiMjMWbMGPTu3bvAAgkREREREZUdrV1J4u7ujjNnzmDw4MFQKpUIDg5GTEwMMjMzMWjQIKSlpcHY2BgikUhjHyIibQoLC8P06dMxZMgQHDhwAAAwceJEmJqaYsOGDejXr5/G/gXNfUREZSk6OrrQ5xbm6jgiIqKKTmtFErFYjPnz5+c6Vq9ePdVjCwuLPDvl5NeHiEib7ty5g88++yzPcTc3NyxdurTA/gXNfR/wChIiKguzZ8/O9VyhUECpVMLY2Bh6enp49eoVJBIJqlatyiIJERERtFgkISIqj8zNzfHo0SPUqlUr1/HExERYWVkJlIqIqHCuXbumehwdHY0tW7Zg8eLFqmLtn3/+iZkzZ6Jz585CRSQiItIpLJIQEWkwcOBAzJs3D7NmzQIAPHz4EOfPn8f//d//wcvLS+B0RESFt2zZMqxZsybX1Ww1a9bE7Nmz4ePjAx8fHwHTFU8bWVyR23xdbcoqDhERVQAskhARaeDn54f09HRMmjQJWVlZGDVqFKRSKUaOHIkJEyYIHY+IqNDevHkDhUKR53hGRgbkcrkAiUrud1nrYvX7z6nHpZyEiIgqChZJiIg0EIlE+PbbbzFhwgTcvXsXenp6qFOnDgwNDYWORkRUJK6urpgzZw5kMhmaNGkCpVKJ+Ph4yGQydO/eXeh4REREOoFFEiIiDdzc3ODh4QEPDw80bdpU6DhERMUWGBiIr7/+Gt7e3rl2E+zcubPqlkIiIqKPHYskREQaeHt74+DBgwgPD0ezZs3g4eGBnj17wtTUVOhoRERF8vjxY/z444+4d+8ebt++DZFIhEaNGqF27dpCRyMiItIZYqEDEBHpstGjRyM6Ohr79+9HmzZtsG7dOnTs2BHffPMNYmNjhY5HRFRoo0aNwtWrV1GvXj10794d3bp1Y4GEiIjoX1gkISIqBHt7e/j7++P48eOYPn06fv31V4wfP17oWEREhWZqaoqsrKxi91coFAgMDMSgQYMwdOhQPHjwIFf7gQMHMGDAAAwePBiBgYG5Fol98eIFXF1dcffu3WK/PxERkTbwdhsiokK4ceMGDhw4gEOHDuHVq1fo3LkzPDw8hI5FRFRobm5uGD16NDp37oxatWrlWYB67NixGvsfP34cWVlZiIqKQkJCAkJCQrBmzRoAwNu3b7FixQrExMTAyMgI/v7+iI2NRZcuXZCdnY3AwEAueE1EROUCiyRERBqEhYXh4MGD+OOPP9C8eXOMHz8ePXr0gImJidDRiIiK5OjRozA3N0d8fDzi4+NztYlEogKLJBcvXoSLiwsAwNnZGYmJiao2fX197NixA0ZGRgCAnJwcGBgYAAAWL16MwYMHIyIiojSHQ0REVCZYJCEi0mDv3r3o27cvPD09UatWLQBAeno6tmzZgqioKMTExAickIiocH7++ecS9c/IyMhVIJZIJMjJyYFUKoVYLIaVlRUAIDIyEpmZmejQoQP27NkDCwsLuLi4FKlIIpFIYGlpWaK8uqgijIljEF55z0+k61gkISLS4MSJE6rHly5dws6dO3HkyBG8ffsWDRs2FDAZEVHR5eTk4MWLF5DL5QAApVKJrKwsXL16FV988YXGviYmJnj9+rXquUKhgFQqzfU8NDQU9+/fx6pVqyASibB7926IRCKcO3cON27cwIwZM7BmzRpUrVpV43vJ5XK8ePGiBCPVTRVhTByD8AqT39raWgtJiComFkmIiDRIT09HdHQ0du7ciTt37gAAOnToAF9fX3z66acCp9Ns6dKl+L//+z+hYxCRjvjll18wc+ZMpKWl5WkzMjIqsEjSokULxMbGomfPnkhISICDg0Ou9sDAQOjr62P16tUQi9/vDbB161ZV+9ChQyGTyQoskBAREQmJRRIionxcvHgRO3fuxNGjR/H27Vs0btwY/v7+WLFiBWbOnIn69esLHbFA06ZNw7Rp0/Ic79evHwBg9+7d+fazsbEp01xEJIxly5bByckJw4cPx7hx47B8+XI8ffoUy5cvx4IFCwrs7+7ujjNnzmDw4MFQKpUIDg5GTEwMMjMz4ejoiF27dqFVq1YYPnw4AGDYsGFwd3cv62ERERGVKhZJiIj+pXfv3rh79y4aNWqEsWPHokePHrC1tQUArFixQuB0RETFc/fuXSxZsgQODg5o3Lgx9PT0MHjwYBgZGWHDhg3o2rWrxv5isRjz58/PdaxevXqqx0lJSRr7R0ZGFj88ERGRloiFDkBEpGvu3bsHW1tbuLm5oVWrVqoCCRFReSaVSmFsbAwAsLW1xa1btwAArVu3xt27d4WMRkREpDNYJCEi+pfTp09jwIABOHbsGIYOHYqOHTsiKCgIcXFxEIlEQscjIioWR0dH1W12Dg4OOHfuHADgjz/+UK0hQkRE9LHj7TZERP9iZWWFUaNGYdSoUbhy5Qr27t2LmJgY1ReDQ9cAACAASURBVAKEO3bswKhRo7hyPBGVKxMnTsSYMWNQuXJl9O3bF6tXr4aHhweSk5Px+eefCx2PiIhIJ7BIQkSkgZOTE5ycnDBr1iwcP34c0dHR2L59O7Zv3w43NzeEhYUJHZGIqFDatm2Lo0ePIjs7GxYWFti2bRv27NkDCwsLDBs2TOh4REREOoFFEiKiQtDT00OPHj3Qo0cPPH/+HNHR0di3b5/QsdRq3bI5kp+kaDyHu9gQfXw++eQT1WMzMzNMnz5dwDRERES6h0USIqIisrKygq+vL3x9fYWOolbykxT8Lmudb9vYje93oAgf2TDf9jayuDLLRUTa9/vvv2PBggVYtmwZHBwcVMcDAgJw//59LFq0CM2bNxcwIRERke7gKl1EREREFVRiYiJGjx4Na2tr1c42H4wcORI1atTAyJEjcfPmTYESEhER6RYWSYiIiIgqqB9++AE9e/ZEREQEatSokautTZs2WL9+PVxcXLi+EhER0f+wSEJERERUQV25cgXDhw/XeI6Pjw8SEhK0lIiIiEi3sUhCREREVEFlZmbmuc3m36ysrJCRkaGlRERERLqNRRIiIiKiCqpOnTq4cuWKxnOuXLkCa2trLSUiIiLSbSySEBEREVVQvXv3xvfff4/nz5/n256amooVK1agW7duWk5GRESkm7gFMBFRBRURm4z/nHqstp1b/RJVfMOGDcORI0fQq1cv9O/fH82aNUPlypXx119/4fLly9i9ezdq1qyJ0aNHCx2ViIhIJ7BIQkRUQY1xq4ExbjUKPvFfWDwhqjj09PQQGRmJ5cuX46effsL69etVbZaWlhg4cCDGjx+PSpUqCZiSiIhId2itSKJQKCCTyXDz5k3o6+sjKCgItra2qvYrV64gJCQESqUSVatWRWhoKAwMDODh4YHKlSsDAGrWrIlFixZpKzIRUYkVNPcdPXoUEREREIlEGDRoEAYMGCBgWiKqiAwNDfHdd99h2rRpePToEf7++2+Ym5ujdu3aEIlEQscjIiLSKVorkhw/fhxZWVmIiopCQkICQkJCsGbNGgCAUqlEQEAAVq5cCVtbW/z0009ITk5GjRrvvwGNjIzUVkwiolKlae6Ty+VYtmwZdu/ejUqVKqFnz57o0qULLCwsBE5NRBWRnp4e6tatK3QMIiIinaa1IsnFixfh4uICAHB2dkZiYqKq7f79+zAzM8OmTZtw69YtuLq6om7durh8+TLevHkDHx8f5OTkwN/fH87OzhrfRyKRwNLSskzHIoSKMCaOQTdUhDGUJ5rmPolEgkOHDkEqleLFixcAUOBWnR/6VcT/jhVhTByD8Mp7fiIiIhKW1ookGRkZMDExUT2XSCTIycmBVCrFy5cvER8fj4CAANja2mLs2LFwdHSEhYUFRo0ahQEDBuCPP/7A6NGjceTIEUil6mPL5XLVLxsVSUUYE8egGwoaA7eBLF2a5j4AkEqlOHbsGObPnw9XV1eN89sHnOd0F8cgvMLk5zxHRERE6mhtC2ATExO8fv1a9VyhUKh+GTAzM4OtrS3q168PPT09uLi4IDExEXZ2dvjiiy8gEolgZ2cHMzMzpKamaisyEVGJaZr7PujatStOnz6N7OxsREdHazsiERERERH9j9aKJC1atMDp06cBAAkJCXBwcFC11apVC69fv8aDBw8AABcuXIC9/f9r787Dqir394+/N8NGBBVQcERNnBPncqi+YqiZmkOT5lCaZdlgemgwNbMy0uMsWuaQqJFDak6ZqJE4a5hDpjiXA87MoiDs/fvDHzs5mkMZawH367q6Tuy1NnxW6P3s81nPep4qLFy4kBEjRgBw9uxZUlNT8fX1za2SRUT+sVtlX2pqKt27dycjIwMnJyfc3d1xcsq1WBYRERERkf+Ra4/btGzZkk2bNtGlSxfsdjuhoaEsX76ctLQ0OnfuzKeffkpISAh2u5169eoRFBRERkYG77//Ps899xwWi4XQ0NA7moouImIWt8u+J554gm7duuHi4kK1atVo37690SWLiIiIiBRYudZxcHJy4uOPP87xWkBAgOPfmzRpwsKFC3Mct1qtjBkzJlfqExH5N9wu+zp37kznzp1zuywRkbt2uy3NV6xYwaxZs3B2dqZq1aoMGzaMrKwsBg0axKlTp8jIyKBv374EBwcbeBUiIiK3pmkZIiIiInJbt9rS/MqVK4wfP57ly5fj7u7Of/7zH3766ScSExPx8vJi1KhRJCQk0KlTJzVJRETE1NQkEREREZHbutWW5larlXnz5uHu7g5AZmYmbm5utG7dmscee8xxnrOzc+4WLSIicpfUJBERERGR27rVluZOTk6UKFECgDlz5pCWlsZDDz2ExWJxvLdfv37079//jn6Ws7MzxYsXv/cXYbD8cE26BuPl9fpFzE5NEhERERG5rdttaW6z2Rg1ahTHjh0jLCzM0SA5ffo0r7/+Ol27duWJJ564o5+VlZXFxYsX7+0FmEB+uCZdg/HupP7SpUvnQiUi+ZP2mhQRERGR27rVluYAQ4cOJT09nc8//9zx2M2FCxd48cUXeeedd3j66adzvWYREZG7pZkkIiIiInJbt9rSvFatWixcuJCGDRvywgsvAPD888+zbds2kpOT+fzzz/n8888BmDZtGoUKFTLyUkRERP6SmiQiIiIiclu329I8Njb2hve0bNmSIUOG/Ou1iYiI3Ct63EZEREREREREBDVJREREREREREQANUlERERERERERAA1SUREREREREREADVJREREREREREQANUlERERERERERAA1SUREREREREREADVJREREREREREQANUlERERERERERAA1SUREREREREREADVJREREREREREQANUlERERERERERAA1SUREREREREREADVJREREREREREQANUlERERERERERAA1SUREREREREREADVJREREREREREQANUlERERERERERAA1SUREREREREREADVJREREREREREQANUlERERERERERABwya0fZLPZGDZsGAcOHMBqtTJ8+HAqVKjgOL5nzx5GjBiB3W7H19eXUaNG4erqesv3iIiY3e2yb8WKFcyaNQtnZ2eqVq3KsGHDcHJS/1pEzOfv5Bmgz3IiIpKn5Non8bVr15KRkcH8+fMJCQlhxIgRjmN2u50PPviAzz77jLlz5/LII49w6tSpW75HRCQvuFWOXblyhfHjxzN79mzmzZtHamoqP/30k4HVioj8tb+TZ/osJyIieU2uNUl27NjBI488AkDdunXZu3ev49ixY8fw8vJi1qxZdO/encTERCpVqnTL94iI5AW3yjGr1cq8efNwd3cHIDMzEzc3N0PqFBG5nb+TZ/osJyIieU2uPW6TmpqKp6en42tnZ2cyMzNxcXEhISGBnTt38sEHH1ChQgVeffVVatWqdcv3/BWr1Urp0qVvWYvdbv/b12H/8G+/Ff72ez+6sQ4jruGfXLuuIef7DPlzBDe7Bvl33SrHnJycKFGiBABz5swhLS2Nhx566Lbf07Q5Z5K/X5D3r8FMGZG3rkEZ92/6O3n2ww8/3PVnOVDO3Y4y4h+893+uIT/8/wIRubdyrUni6enJpUuXHF/bbDbHAOnl5UWFChWoXLkyAI888gh79+695XtERPKC2+WYzWZj1KhRHDt2jLCwMCwWixFliojc1t/JM32WExGRvCbXHrepX78+69evB2DXrl1UrVrVcczf359Lly7xxx9/ABATE0OVKlVu+R4Rkbzgdjk2dOhQ0tPT+fzzzx3T1EVEzOjv5Jk+y4mISF5jsf+TOWZ3IXtF9IMHD2K32wkNDWXfvn2kpaXRuXNntmzZwpgxY7Db7dSrV48hQ4bc9D0BAQG5Ua6IyD1xq+yrVasWTz31FA0bNnTMIHn++edp2bKlwVWLiNzo7+RZcHCwPsuJiEiekmtNEhERERERERERM8u1x21ERERERERERMxMTRIREREREREREdQkEREREREREREB1CSRfOTKlStGl3DPZGVlGV2CiJhQfsk5ZZyI/BXlnIgYTU2Sf0jr3prDyZMnWblyJZcuXeLixYtGl/O3HD16lGXLlhldhsgNlHPmkNdzThknZqacMwflnIiYgYvRBeRldrvdsc3dtm3bcHFxwWKxUL9+fYMruzvZ1xEfH4+zszPFihUzuqS7lpiYSGRkJGvWrKFcuXIMGjTI8bvJC+x2OwkJCURGRrJlyxbKly9P3759ycrKwtnZ2ejypABTzplHXs45ZZyYmXLOPJRzImIGmknyD2SH9syZM5k0aRLLli1j6NChrF271uDK7o7FYmHdunX07NmTd999lwkTJhhd0h3LvvNTq1YtatasyaZNmyhcuHCem6ppsVi4//77cXZ2Zvny5Y7B1NnZGZvNZnB1UpAp54yXH3JOGSdmppwznnJORMzEediwYcOMLiIvW7t2LStWrGDWrFns2LEDNzc3unbtyoEDByhVqpTR5d2RvXv3Mn36dLp3706NGjVYvnw5p06donHjxkaXdkvX3/nJysrCzc2Nxo0bExUVRUpKCuXKlcPDw8PgKm/t+mtwcXHB1dWVypUrs3v3bhITE6ldu7bjuM1myzN3UyR/Uc4ZJ6/nnDJO8grlnHGUcyJiNmqS/EPHjh2jXLlyREdH88svvzBhwgQiIiLYtm0bzZs3N7q82/rjjz8YPHgwbdq04cknn6Rs2bJUrFiRRYsWceTIER5++GGjS7yp6wekb7/9lkWLFlGiRAlat25N4cKFWbRoEYUKFeLQoUOkpqZSpkwZgyu+0fXXsHLlSrZu3UrVqlVp0aIFly5d4scff8TFxYX09HQ8PDxwc3MzuGIpqJRzxsjrOaeMk7xEOWcM5ZyImJEet7kLN1vU6+rVq0yYMIHY2FjCw8OxWq1cvnzZEYJmXwjMbrfj7e3NzJkzSU1NpXDhwtSvX5++ffuybds2jh07ZnSJN5U9IIWHh7NixQrq1KlDiRIlSEpKIigoiJCQEKKiovjqq68oWbKkwdXeXPY1REREEB4ejru7OxkZGVitVjp37kxwcDDh4eH079+flJQUg6uVgkI5Zx55PeeUcWJWyjnzUM6JiBlZ7GZPfZO4vlO8fPly0tLSSE1NpXfv3oSEhHDmzBm6d+9OXFwc3377LZMnTyYgIMDgqm+UfR0nTpzg0qVLFC9enOTkZMLDwzlx4gRhYWEUKVKEK1eucPnyZby9vY0u+S+dPXuWQYMGMWPGDHbv3s26detYt24dVquVL774gqysLKxWq6kXLjt06BCDBg3iyy+/5Ny5c2zZsoXZs2fTtWtXevXqxcmTJ3Fzc6N06dJGlyoFgHLOfPJ6zinjxGyUc+ajnBMRs1GT5C7NnDmTqKgounTpwsCBAwkJCaFnz57897//JTExkczMTF555RVTD6jR0dGMHj0aLy8vABo3bkyTJk1YsmQJBw8eZNq0aRQpUsTgam90/QcbgIyMDJ577jlSUlIoUqQITzzxBFWqVCEyMpJevXpx3333GVjtzf3vNRw5coTRo0fj6upKcnIyderUoUKFCsydO5fPP/8cX19fA6uVgko5Z5y8nnPKOMkrlHPGUc6JiNlpC+DbuD4I9+3bx8aNG5kzZw5Tp06lRYsWtG3bloULF/Luu+8C16Zrurq6GlnyDbJrslgs7N27l9GjRxMaGkpgYCDLli1jy5YtnDlzht69ezNu3DiOHTtG7dq1jS47h//dns/JyQkPDw+mTZvG1q1bady4MT4+Pqxfv569e/dSuHBhgyu+0fXXcOLECaxWKwEBATRv3pykpCRatWpFhQoViImJwdPTE3d3d4MrloJCOWcOeT3nlHFiZso5c1DOiUheoCbJLdhsNpycri3bkpiYSIkSJfDz8+PTTz/l6NGjfPHFF8TGxrJ06VKefvppANMNqOfOnWP58uV0794dNzc3Ll26RKNGjQgMDASgffv2xMTEsHbtWtq0acPIkSNNuajU9dvzRUVFUalSJbZv3+5YpGzcuHHs3r2bc+fOMWHCBFM/tzp37lyWLl2Kq6sr6enpfPbZZwQEBDBlyhSSkpLYunUrI0aMwNPT0+CKpSBQzplHXs85ZZyYlXLOPJRzIpIXaOHWW8geUOfMmcNHH31EfHw8Z8+eZf/+/fz3v//FarWyZ88erFYr6enpBld7cydPniQoKIikpCROnDiBi4sLy5cv58yZM45zgoKC8PT0JDMz05QDara1a9cSHR3NnDlzKFKkCDVr1iQwMJCdO3fSoUMHevTowYwZM6hSpYrRpf6lFStWsGDBAj777DOmT59O9erVee2110hNTcVqtVK2bFlGjx5NtWrVjC5VCgjlnLnk9ZxTxokZKefMRTknImanLYBv4scff+Tbb7/l4YcfZtOmTcyYMYOwsDDKlClDQkIC586dY+vWrezatYtly5YRGhqKn5+f0WXfVOnSpSlUqBAjRoxg586dPP7441gsFsaNG0f58uU5ePAg48aNo2vXrqZ77vZ/n/k8c+YMpUqVumF7vu3bt/Pkk09SqVIlUz57C39ey+rVq2nSpAkPPfQQLi4uNG/enBUrVgDwwgsvULt2bXx8fAyuVgoC5Zw55JecU8aJGSnnzEE5JyJ5jZok/2Pjxo1MnDiRrl274u/vz5w5c/jtt98oVaoU1apVo27dunh6elK4cGGsViv9+vUz3WAEfwZ5amoqHh4eeHl5ERsby65du2jbti2enp4sXLiQI0eO8MorrxAUFHTDIGak62uZN28eu3fv5tKlS0yePBkXFxe+/PJLXFxc2LhxIzabjUceeQTANPVDzmvI/t+9e/eyceNGGjVqhIeHBwCxsbGUKVOGGjVqGFarFCzKOXPkRF7POWWcmJlyznw5oZwTkbxCa5JcZ8OGDbz99tt89tlnNGnSBIDu3btTqFAhoqOj8fDwIDg4mKCgIGMLvY3rVz1ftGgRXl5efPzxx6SlpbF69WqWLl1K37596d27t2MvdzMNqPDnQLR+/Xq+++475syZg9VqJSoqivj4eFatWkVcXBw//PADkydPNlXtkHNQ3bJlCxcuXKBMmTKULVuWcuXKsWDBAoKDg/njjz+IiYmhR48eBlcsBYVyzjxZkZdzThknZqacM09WKOdEJC/STJL/b/369YwaNYrMzEzc3d2pUaMGhQsXxsvLi1KlShEXF8fevXux2WymvNNwPYvFwoYNG5gwYQLvvfce5cqVo2jRohQtWhQvLy927drFrl27ePDBB7FarVgsFlMNSnBtkbXjx48zcOBAvL29adKkCUWKFKFdu3b8+uuvHD9+nLNnzzJ06FBT/j6y/3tGREQwdepUrly5QmRkJABubm6kpKSwYMECDh8+zIcffkjlypWNLFcKCOWccu5eUcaJWSnnlHP3inJOpOCy2O12u9FFGO23337jo48+4tNPP6VKlSo8+eST1KhRg5CQEMczhceOHSMiIoKrV6/y3nvvmW5Lsv81bNgwatWqRa1atVi6dCnbtm0jLi6OsLAwbDYbxYoVo3r16kaXmcPN7n5s2bKF8ePH06ZNG1q3bp1jlXMzbs8Hf15HTEwMn376KVOmTKFkyZL8/PPPLF++nJo1a9KlSxcSEhKwWq2OqZoi/yblnDnkh5xTxolZKefMQTknInmdZpIA6enpBAUFOVbRfvTRR5k5cyaHDh2iXr16uLu74+3tTfny5WnWrBlFixY1uOIbZYd5RkYGzs7O/Prrr0RFRfHNN9/QpEkTPvjgA9LS0rh8+TJt27alRIkSRpecw/UD6tKlS1m0aBGRkZE0atSIBx54gNmzZ+Pq6krJkiUd26k5OTmZ6o5JfHw8WVlZjrs5p0+f5sKFC7Rv356rV6/i7+/PoUOH2Lx5M+3atcPd3R2r1Wp02VJAKOeMl9dzThknZqecM55yTkTyA20BDPj7+zumyGVmZuLr68vUqVPZv38/48eP5+LFiwBUrFjRlKtVZw9IW7Zs4fPPP+fHH3+kV69eDB48mMWLF9OlSxdOnTrFpk2bqFmzptHl3lT24BgeHk5ERARVq1bF29ubjh074uTkREhICHPnzmX9+vXYbLYc7zGDn376if79+9OzZ08WL14MXJuKuWbNGqKjox13SEqUKIGPjw+ZmZlGlisFkHLOeHk555Rxkhco54ynnBORfMEuN8jMzLTb7Xb7hQsX7MHBwfZPPvnEnpWVZXBVtxYdHW3v0KGD/fvvv7cvW7bMnp6ebrfb7faFCxfa33zzTXvr1q3tUVFRBld5o4MHD9p///13u91ut58+fdres2dP+8WLFx3HIyIi7M2bN7dnZWXZf/jhB/vJkyeNKvUvbdiwwd6+fXt7TEyMff78+fZ27drZExMT7Xa73b58+XJ7UFCQfeLEifYpU6bYO3bsaI+NjTW4YhHlXG7K6zmnjJO8SjmXe5RzIpKfFMg1Sex3sPJ3VlYWzs7OxMfHc+nSJfz9/XOpuruXnJzMK6+8woABA6hcuTJLly5l8eLF3H///XTt2pVixYqRmZlpugWxoqOjGT16NGFhYVSsWJHU1FT69OnDm2++6ViN/uzZs3z44YeMGjWKIkWKGFzxjTZs2MDIkSMZNmwYDRs25Pjx4/To0YMaNWrg7u5Oy5Yt8fPz47vvvqNYsWI89dRTpvs9SP6knDOHvJ5zyjgxM+WcOSjnRCS/KXBbAF8/oJ49exZXV1d8fHxuGGidnZ3JysrCx8fHlFMyr1e4cGEqVqzIV199xdmzZ/m///s/3nnnHaZOncrVq1epUKGC0SXeIHu19kGDBlGxYkXS09Px9PSkcuXK7N+/n1KlSnHfffexY8cOEhMTTTml8eLFi4wYMYImTZrQsGFDzp8/z4ABA3jmmWeoU6cOv/zyC8uWLWPy5Mk0aNDANNNJJf9TzplDXs85ZZyYmXLOHJRzIpIfFagmyfUD54wZM1i1apVj27EWLVrcdGA1o+w6jx07hs1mw8/Pj/bt23P8+HEaNGhApUqViI+PJz093ZSLkq1bt46wsDAGDx5MgwYNOH36NFOmTGHw4ME8/vjjzJ49m/Xr1+Pr68tvv/3G+PHj8fb2NrrsGxQvXpwXXniBVatWMXXqVFatWsWzzz5Lly5dAPD19WXnzp2kpaWZ7q6J5F/KOXPIDzmnjBOzUs6Zg3JORPKrAtUkyR4w9+zZw7Zt2xg1ahSbNm3irbfeYty4cbRq1eqOpm4azWKxEB0dzdixY3nggQdYtGgR06dPp3PnzixatIivv/6an3/+mQEDBjhWeDeLs2fPMmrUKAIDA2nQoAHnz5+nX79+dOjQAavVSpMmTShdujSnT58mMTGR/v37U7ZsWaPLziEhIYH09HS8vLx49tlncXNzY/r06VStWtUxqAIcPXqUjIwMsrKyDKxWChrlnPHyes4p48TslHPGU86JSH5W4LYAXrp0KaGhofTu3ZuGDRtSu3ZtSpUqxeDBg/H396datWpGl3hbe/fu5ZNPPiEsLAxXV1cOHDhAly5dcHJyIikpCV9fX9q2bcsjjzxidKk35enpydGjR4mNjWXmzJl07NiRrl27Atfuqnh7e+Pv70+VKlVMd+dk3bp1hIaGsnLlSjZs2EDDhg1p0KAB3t7ebN68maysLO6//35WrlzJV199xccff0y5cuWMLlsKGOWc8fJqzinjJK9QzhlPOSci+VZurRBrFJvNluPrCxcu2Js1a2bv2bNnjtcjIiLsDz74oD0lJSU3y7tj11/H5s2b7bNmzbJv2LDB/tRTT9lPnz5t//777+2dO3e+4XrNKCkpyf7dd9/Z27VrZ+/Tp4/j9YyMDAOrur1169bZH3vsMfumTZvsKSkp9sOHD9vtdrt9+/bt9oyMDHtkZKS9R48e9pCQEHuHDh3shw4dMrhiKSiUc+aTF3NOGSdmppwzH+WciORX+Xomif26qZa//vorcXFxeHp60qtXL7744gt+++03WrZsCUBgYCBdunQx5fOG2dcRFRXF9u3bKVOmDB988AE7duxgzpw5FC9enD179mC32wkKCjK63Ntyc3OjXLlyeHl5cfToUS5cuEDdunVxdnbGZrOZcnrs0aNH+eSTTxg6dCiNGzfGarXi4+PD2LFjCQ8P5/Tp03Tu3Bmr1crmzZsZMWIElStXNrpsKQCUc+aU13JOGSdmppwzJ+WciORX+bZJcv2AGh4ezsyZM4mJiWH16tWkpaURGhrK2LFj+fnnn2nTpg0AVqvVdIEO155ZjYmJYeLEibRt25a6dety8eJFx0rup0+fZvLkyXTp0oWKFSsaXe4dsVqtlClTBmdnZ6Kjozlx4gQPPPCAKf/7w7WBNS4ujp49ezoG/mHDhvH777/Tq1cvVq1aRdGiRWnXrh2tW7emVKlSRpcsBYByztzyUs4p48SslHPmppwTkfwo3y7cmh3OUVFRrFixgrlz55Kenk5sbCxjx44lICCABQsW8Nxzz3Hu3Dn8/PxMGegAycnJzJ49m5SUFB544AEA2rZty88//8zo0aOpWLEi/fr1IygoyFQLlf1VLdmvFy1alEcffZT09HS2bNlCYmIiXl5eBlT61/bs2YOPjw9nz54lJSUF+PPPVrVq1cjuMUZGRjq2FvTw8DCkVil4lHPGy+s5p4wTs1POGU85JyIFTb6bSbJnzx7mzZtH48aNAfjll19wdXUlKCgIJycnihcvzr59+0hJSSEoKIiuXbuackpmthMnTpCSkkLVqlWJiopi//79BAcHU7JkSerXr0+nTp1o1aoVVatWNdWACn8OQIsWLWLx4sU4OTnh7e2Nm5ubo1Y3NzcqVKjAo48+SrFixQyu+E92ux273c7LL79MtWrVqFixImPHjqVBgwaOxbsCAwMBmD9/Pps3b6Z79+54eHiY6ncg+ZNyzjx/x/JqzinjxOyUc+b5e6acE5GCxsnoAu41Dw8PnnvuOX799VcA3N3diY2NBcDFutUpHwAAHwdJREFUxQV3d3d8fHzIyMgw3SCUzW63A9c+ILz66qt8/vnnlC9fntDQUI4fP87w4cMd57q7u1OoUCEA01xLdv0Aixcv5ptvviEpKYnp06ezatUqkpOTsVgsjvOKFCliug82NpsNJycnqlSpQkZGBlWrVuWll14iLCyM7du3O85bsWIFERERfPrpp/j5+RlYsRQkyjnj5fWcU8aJ2SnnjKecE5GCKt/MJMkeIL29vQEYMGAAO3fupG/fvnz33XesXr0aq9XK9u3bWbhwISEhIfj4+JhmILqexWJh3bp1fPnllzRp0oR169aRkJBA06ZNqVOnDgsWLGDfvn00b97c6FJvcP0HlbNnzxITE8P7779Phw4dOH/+PFu2bMFut1O2bFnHhwEzcnK61j/ctWsXCQkJNG7cmOLFi5OWlsYnn3zC9u3b2bhxo2Nhr6pVqxpcsRQEyjlzyA85p4wTs1LOmYNyTkQKMov9+jZxHnV9kF+4cIESJUqwd+9exo0bR+XKlXn//fcZPnw4ly5d4vLly7zxxhumXq06ISGBF198kXfeeYemTZty8eJF3nnnHUqWLMmbb77J6dOncXJyol69ekaXmkN2xx6uLa62ePFiLly4QLdu3Xj99dcBmD59OuvXr+fJJ5+kQ4cOpvtQs27dOrZt24abmxv16tVj5cqVlC5dmv79+zv+nF24cIEDBw7g7++Ph4cHxYsXN7psKQCUc+aQ13NOGSdmppwzB+WciBR0eX7h1usH1Llz5xIZGckjjzxCjx49CAkJYfTo0QwfPpwhQ4YAkJ6ejpubm5El/6Xrr8Xd3Z3q1asDULx4cd5++226detGiRIlCAkJueF8M7i+Y79//36GDx/Or7/+yurVqylevDhdunThpZdewtXVlcaNG5uq9myJiYmkp6dz7Ngxjh49SmxsLEuXLuXAgQOcPHmSmjVrUqxYMerVq0f58uWNLlcKCOWcebIir+ecMk7MSjlnnqxQzolIQZfnH7fJDub58+ezcuVKPv74YwoVKoSzszNXr17lgQceYMmSJezevZvmzZvj7OxsujDPHhyTkpIoVKgQ7u7ubNy4kTVr1tC2bVsAzpw5Q1xcHGvWrMHPz4/q1aub8jq2bt1Kjx49aNWqFU888QSlS5fGarWycuVKkpKSqFu3LnXr1sXT09Pocm+qevXqNGvWjHbt2vH4448TEBDAwYMHeemll/D398fd3Z1Dhw7RsWNHU63cLvmbcs488nrOKePErJRz5qGcE5GCLs/OJNm6dSt2u53GjRuTnp5OdHQ0vXv3JiEhgR9//JE1a9ZQuXJlevXqxbBhwxwhbsaByGKxEB0dTUREBOXKlePy5cv06dOH0aNH06FDB9q3b8+CBQsIDw9nzZo1uLq6Gl22w/V3PywWC02aNOHpp59m1qxZPPfcc/j6+hIcHExGRoZjWmaRIkVM93u4XvY1ZWZm4uXlhZOTE40aNaJZs2ZGlyYFjHLOHPJbzinjxEyUc+agnBMR+VOe3d0mISGBChUqcO7cOQoVKkTt2rUZPHgwoaGh1KxZkwULFlCyZEkuX75M1apVKVOmjNEl35TFYmHLli2MGTOGd999l8uXL3P8+HF8fX0JCwujW7dueHt7M2LECE6cOMG3335LzZo1jS4byDmgbtq0iSVLlrBx40aGDx9OmzZt6NixIxcuXMDHx4c2bdowevRoihYtatoBNVt2fS4uLo6t+OLi4oA/t5MTyQ3KOePlx5xTxomZKOeMp5wTEckpz80kyV5M6vHHH+fUqVO0bduW0NBQnnnmGYKDg6lQoQKXLl3i8OHDHDp0iL59+xpd8i1lZmayceNG3n77bRITEzl8+DBhYWFERkbi4uJC586d2bx5M8uXL2fHjh2MHj2a++67z9CaswfT7AEoPDyc77//nooVK5KUlMQ333xDWFgYNpuNli1b8uOPP+Lj42NozX9H9gCalJTEuXPnqFSpkqk/EEj+oZxTzuUGZZwYSTmnnMsNyjkR+TvyVJPEbrc7FpNKTEykbNmyDBkyhDFjxtC/f39at27N4sWLmT9/PpmZmYSGhuLv729w1Tn9/vvvREVF4eHhQfPmzfHz88PX15fw8HDS0tIYN24cpUqVYuvWrTz66KMANG3aFG9vb/r27Yuvr6/BV3BtsbRChQpht9vZsWOHY395Nzc3Tp48ycSJE5k8eTIff/wx6enppKSk5LlBFa7dhbDZbNStW5eyZcsaXY4UEMo55VxuUcaJUZRzyrncopwTkb8jTzVJsju/M2fO5KeffuLUqVMsXbqUS5cuMWbMGNzc3HjwwQdp1KgRbm5uphiArnfkyBHefPNNateuzR9//MHZs2fp168fJUqU4NixYwwYMIAyZcpw5MgRjhw5wosvvuh4b40aNQys/E9HjhwhNDSUIUOGcN999+Hk5ESFChVwdXXl6tWrlCtXjpo1a/Lbb78BMHLkSIMr/mesViufffYZVqvV6FKkgFDOGa8g5ZwyToygnDOeck5E5K/lqSYJwJIlS1i+fDlfffUVKSkpeHp60q1bNzw8PHjvvfcIDQ2lZcuWRpd5g6NHj/L+++/z8ssv06lTJyZMmOBYfKxdu3b8/vvvLFy4kHnz5pGRkcGAAQOoV6+ewVXnlP0Mp7+/PyNHjmTw4MF4enry22+/8fvvv1OpUiUAChUqBEBGRgaurq55flqjBlXJbco54xTEnFPGiRGUc8ZRzomI3Fqe2wJ47dq11K9fnwcffBBXV1cyMjJ44YUX6NKlCzVq1OD+++833XZehw8fZsiQITz33HN06tQJgEWLFuHs7EyVKlXw8PDgwQcfpEmTJjRr1ozHHnuM+vXr51hIy2jZzw77+PiQkJDA7t27+fnnn3nyySfJyspi+PDhXL58ma1bt7Jo0SIGDx6Mn5+faeoXyUuUc8ZQzonkHuWcMZRzIiK3Z+qZJDcbVFJSUti1axfdunWjcOHCAFSqVIn4+Hg6dOhgRJm3dPXqVYYOHUpycjIdO3YEoHv37o4VtqOionB1daV8+fI88cQTtGrVyvFeMw1I2c8Oz5w5k7Vr11KvXj1iY2MJCQlh7Nix+Pv7s3//fi5fvsykSZMcdyFE5NaUc8o5kfxOOaecExHJSyx2k+6Bdf2AGh0dDVybKhcYGMgTTzxB48aN6devH1u2bGHatGlMnz7dtAsyHTx4kNdee42mTZuSlJSEv78//fv358yZM6SlpbF27VoOHz5M27ZtCQ4ONrrcv3TixAnefvttZsyYgaenJ6dOnWL27NnExcUxZMgQSpYsaaq7JSJmp5wzH+WcyL2lnDMf5ZyIyK2ZtkmSbebMmURFRdGoUSMiIiL45JNPqF27NgMGDMDX15f4+HiGDh1K5cqVjS71lo4cOUK/fv1IT09n7dq1wM3vrJhpUPrfWuLj43nxxRcZMGAAzZo1A2DVqlWMGjWKWrVqMXr0aJydnR13KUTkzijnjKOcE8kdyjnjKOdERO6Oqdck2bx5M9999x2zZs1iy5YtFClShGeeeYaTJ0/y+uuv8+ijj9K6dWtKlSpldKm35ePjQ+PGjVm2bBl//PEHzZo1w2KxkJmZmWMQMuOAevjwYZKTkyldujR//PEH586dw8PDg5IlS3LgwAFcXV0ZMGAARYsWNU39InmFcs44yjmR3KGcM45yTkTk7pl6JsnGjRvZtWsXdrudX375hS+//JKVK1cSFRXFxIkTjS7vjvxv9/7IkSO89tpr1KtXjxEjRhhY2V+7vubp06ezZMkSzp8/79jSbtWqVcTGxlKhQgX27NnDl19+afo7PyJmpZwzhnJOJPco54yhnBMR+XtMs3Drjh07OHjwIOfPn6d8+fJ07NiRYsWK8f333+Pv788XX3yB1WolLi6OQoUKYbPZsFgsput0Zw9IKSkpWCwWx7Zw2QICApg0aRIvvfQSBw8epEqVKqa7hux69u7dyy+//MK8efPYsWMHn376KX369OGVV14hPj6eCxcuEBISQrly5QyuWCRvUM6Zh3JO5N+hnDMP5ZyIyN9jiibJhg0bGDlyJM899xwnTpxgz549fPvtt0RERBAcHMz+/fuZPXs2drudZcuWMXnyZFM+J5k9oP7444/MnTuX8+fPM3LkSKpXr57jvCpVqvDDDz84VnM3o7Vr1zJ+/Hjat2+Pp6enYzrpp59+ysWLF3nllVeMLlEkT1HOmY9yTuTeUs6Zj3JOROTuGf64zcaNGxkzZgzvv/8+Dz74IDabjfj4eP7zn/9QtGhRJk2aRHh4OGfOnCEjI4Nu3boREBBgZMm3FBMTw9ChQxk7dixZWVncf//9ZGRk4OTkhIuLKXpSN2Wz2XJ8ULly5Qqvv/46aWlpjB8/Hj8/PywWC1FRUUyYMIFZs2bh5eVlYMUieYdyzhyUcyL/HuWcOSjnRET+OUObJFu2bOHNN99k8eLFlC9fnoyMDKxWKwDnzp1j8ODBvPLKKzRs2BCArKwsnJ2djSr3pk6fPs3OnTtp06YNcG319tOnTzNo0CCuXr2Kk5MTQ4YMoUWLFqbdDu76Z1ZXrlzJlStXqFevHuXKlaNPnz4UKVKEwYMHOwbWtLQ0U981ETET5Zw5KOdE/j3KOXNQzomI3BuGznFMT08nNTWV2NhYAFxdXbHZbAB4e3tjt9vZt2+f43wzTsn87bffqFChAvHx8QBYrVZOnjwJgLOzM87Oznh6epKammpkmbeUPaCGh4czceJEVq9ezfDhw9m3bx9Tp04lLS2NgQMHcv78eQDc3d2NLFckT1HOmYNyTuTfo5wzB+WciMi9YegWwBUrVqR69eoMHDgQLy8vatWqhd1uJysrC1dXV44dO4a/vz9VqlQBzLOdGkBCQgJxcXE0bNiQQoUKMXDgQFJTU2nfvj0TJkwgLi6OsmXLcvToUWbOnMkzzzxj6q3tIiMjWb58OYsWLSI1NZXt27cTFxeHv78/zz//PNHR0Tz88MN4enqa6vcgYnbKOfNQzon8O5Rz5qGcExH55wxtkgBUqlSJSpUq8dFHH1GsWDECAwNxcnJi2bJlLFmyhJ49e1KsWDEjS7xBVlYW69atY/Xq1SQkJBAbG4u/vz8//vgjXl5eDBgwgK+//prdu3ezdu1a+vfvT+PGjY0uO4ezZ8+SlpaGh4cHADt37qRYsWJ4eXmxY8cOnn32WaKioli5ciXe3t689dZbN6zsLiJ3RjlnDOWcSO5RzhlDOScicu+ZYuWpli1bAjBw4EB8fHzw9PRk1qxZjBo1Cn9/f4Oru5GzszM1a9Zk4cKFLFmyhBEjRtCyZUusVisRERHY7XZmz55NRkYGCQkJlCxZMsdzokZbt24do0aNoly5cri5uTFx4kT8/PyoUqUKu3fvplixYjz88MNs376d5ORk6tevb3TJInmeci53KedEcp9yLncp50RE/h2GzyTJFhAQQEBAAG+++SabNm1i8uTJVK5c2eiybpA9OBYrVozY2FgKFy5MSkoKfn5+NG3aFLvdzrx580hJSaFBgwZ4eHhgsVhMM6Bmrz4fEhJCQEAAu3fvJjg4mKpVq+Ln58eUKVNo0KABhw4dYsmSJQwcOJBy5coZXbZIvqCcyx3KORHjKOdyh3JOROTfY4qZJNlatGjBjBkzKF26NJUqVTK6nBtkD6ixsbFkZGTw0ksvkZyczJw5c5g9ezZvvfUWjRo1AqBGjRqAuZ67zR5QBw4cSJMmTTh8+DA+Pj5kZWUB1xZSK1GiBEuWLOH3339n4sSJVKhQweCqRfIX5dy/SzknYjzl3L9LOSci8u8ydAvgvCR7u7r169czcuRIgoKCCA4Opn79+hw5coTw8HBOnTpFeno6n3zyiek+FGzZsoVXXnmFuXPncv/993P8+HHefPNNjh49yosvvoiTkxMPP/wwpUqV4sqVK3h7e+Pj42N02SKSi5RzIpLfKedEROR21CS5jaSkJMdCYwcOHCAkJIQJEybg7OzMiRMniIyMpEePHhQvXpzo6GjKlClDkyZNDK76RrGxsXTs2JERI0YQHBxM7969adq0KSVKlCA5OZmVK1eSmppK4cKFWbBggRb1EilAlHMikt8p50RE5E6pSXILKSkpTJgwgd69e1O6dGl27tzJ/PnzadSoEdHR0VgsFtLT0zl58iTffvstbm5uAKZa1Ot6e/bsoXv37ri6ujJkyBA6derkOJaZmcnVq1dJTk6mZMmSBlYpIrlJOSci+Z1yTkRE7oaT0QWYmcVioU+fPmRlZfH1119Ts2ZNLly4wLJly2jTpg0jRozgnXfeoWLFithsthzvM6PatWuzYMECbDYbycnJANhsNjIzM3FxccHd3V0DqkgBo5wTkfxOOSciInfDVAu3monNZsPT0xN3d3e+++47VqxYgZeXF9OnTweuLZq1bds2xo8fz2uvvYa7u7vBFd+Z6tWrM2vWLLp27UpaWhp9+/bFyUm9MpGCSDknIvmdck5ERO6WabYANhuLxcLPP/9MVFQUbdq0wdPTk6VLlxIfH0+tWrUYOnQoJ0+epFu3brRo0cK0UzJvpmTJkjzyyCOEhITg7u5O/fr1jS5JRAygnBOR/E45JyIid0szSf5H9uC4a9cuZs2axdq1a0lJSeGFF17AZrMRGRmJp6cnc+bMcZyblwbUbIGBgSxatIhChQoZXYqI5DLlnIjkd8o5ERH5uzST5H9YLBY2bNjA0KFDefXVVwkKCuLLL78kMzOTp556iqysLFauXEnDhg0dq6TntQE1m5+fn7aFEymAlHMikt8p50RE5O/STJKb2L17N6+++irNmjUDoE6dOrRv3x5XV1d69epFs2bNtCCWiORpyjkRye+UcyIi8ndohaebSExMZMWKFY6v/f39efLJJxk3bhxff/21BlQRyfOUcyKS3ynnRETk7yjwTRK73Q7A4cOH2b59O7GxsXTp0oXixYvz3//+F4BffvmFpKQkPv74Y2JiYrh69aqRJYuI3BXlnIjkd8o5ERG5Vwr84zYWi4WoqCjCwsLw9fXFZrPh4uJCp06dWLBgAS+88AIXLlxgzJgxnD592uhyRUTumnJORPI75ZyIiNwrBb5JcvDgQcLCwhg9ejQBAQHExsYSHh7Ovn37mD59OnFxcWzfvp3z588zYcIERo4ciaurq9Fli4jcMeWciOR3yjkREblXCnyTJCMjgwoVKhAQEIDdbicgIIBq1aqxd+9eLBYLfn5+xMfHs3nzZkaOHEm1atWMLllE5K4o50Qkv1POiYjIvVLgmiR2uz3HFm9Xrlzh+PHjnDlzhlKlSuHq6oq/vz+7du3i8uXLuLu707t3b8e/i4iYnXJORPI75ZyIiPxbnIcNGzbM6CJyQ0pKCm5ublgslhwDa5kyZdi5cyczZsygcOHCHDhwgAkTJvDyyy9TpUoVbDYbFotFUzJFxPSUcyKS3ynnRETk31YgmiRpaWm0b98ei8VCnTp1HANr9uDaokULzp07x5EjRzh8+DB9+vShWbNm2O12nJwK/AZAIpIHKOdEJL9TzomISG6w2LP3TMvnvv/+ez7++GNCQkJ49tlnAbDZbGRmZmK1Wh3TLzMyMrBarQZXKyJy95RzIpLfKedEROTfViBmkgBUrVqVihUr8tFHH+Ht7c3999+PzWbD1dWVdevW8cYbb9C6dWuKFCmS4xlXEZG8QjknIvmdck5ERP5tBWrh1pYtWwIwcOBAbDYbXbp0YfPmzbz77rsMGjQIX19fgysUEflnlHMikt8p50RE5N9UoJok8OfAOmTIEPbt28fq1asZNmwYbdq0uWGldBGRvEg5JyL5nXJORET+LQWuSQLXBtasrCzee+89QkNDHQOqiEh+oZwTkfxOOSciIv+GArNw683Ex8fj4+PjGFB110FE8hvlnIjkd8o5ERG5lwp0kySbpmWKSH6nnBOR/E45JyIi94KaJCIiIiIiIiIigJPRBYiIiIiIiIiImIGaJCIiIiIiIiIiqEkiIiIiIiIiIgKoSZKvPProo1SrVo2RI0fe9PipU6eoVq0a1apVIz4+/h/9rIEDB9KuXbs7Pv/kyZNUq1aNVatW/e2fWa1aNWbMmPG33y8ieZ9yTkTyO+WciIix1CTJZywWC6tXr77pscjIyFyuRkTk3lPOiUh+p5wTETGOmiT5TL169Th58iT79u274diqVauoVq2aAVWJiNw7yjkRye+UcyIixlGTJJ+pUaMG5cuXv+EuQ1xcHL/++iuPPfbYDe9Zs2YNTz31FHXr1qVZs2aMHz+eq1evOo5nZmYyevRoHnroIerXr89nn31GVlbWDd9n9uzZtGrVilq1atG2bVtWrlx5V7VnZWUxZcoUWrRoQZ06dejQoQNr1679y/P37NnDyy+/TMOGDalVqxaPPfYY8+bNy3HO9OnTadmyJYGBgbRo0YLJkydjs9nu+LiImI9yTjknkt8p55RzImIcNUnyoZYtW7JmzZocr0VGRlKnTh1Kly6d4/X58+fzxhtvEBgYyKRJk+jevTtfffUV77//vuOc0NBQ5syZw8svv8zYsWOJjY3lhx9+yPF9Jk2axMiRI2nTpg1TpkyhadOm/Oc//7nhvFv57LPPmDRpEk8++SRTpkyhTp069OvXj5iYmBvOjYuL4/nnn6dw4cJMmDCByZMnc9999/Hhhx8SGxsLwMqVK5kwYQI9e/ZkxowZPPPMM4SFhbFgwYI7Oi4i5qWcU86J5HfKOeWciBjDxegC5N5r3bo1M2bM4MiRIwQEBADXpmY+/vjjOc6z2WyMHz+etm3bMmzYMAAefvhhihQpwocffshLL71EqVKlmDdvHv3796dnz54ANGnShObNmzu+T3JyMlOnTuWll16if//+ju9z6dIlxowZc8PPvZnExES++eYbXn/9dV577TXHzzl27BgxMTE0bNgwx/mHDh2ibt26jB49GldXVwDq1KlDo0aNiImJoXr16vz888+ULVuWrl27YrFYePDBB3FxccHPzw/gtsdFxLyUc8o5kfxOOaecExFjaCZJPlS7dm3KlCnjWPDrzJkz7Nmz54apmUeOHCE+Pp7WrVvneD17lfOYmBh2795NVlYW//d//+c47ubmRrNmzRxf79q1i/T0dIKCgsjMzHT883//93+cOHGCEydO3Lbm7J/z6KOP5nh9zpw5vPrqqzec36xZM8LDw7HZbMTGxrJq1SqmTZsGQEZGBnDted5jx47x1FNPMXXqVA4ePEjv3r0dP+N2x0XEvJRzyjmR/E45p5wTEWNoJkk+lT1Fs2/fvqxatYratWvfMDUzKSkJgOLFi+d43dPTEzc3N1JTU0lOTgbA29s7xzklSpRw/HtiYiIAXbp0uWkt58+fv203P7sWHx+f210acO151xEjRjB//nyuXr1K+fLlHXcn7HY7AO3btycrK4uIiAjGjh3LmDFjqF69OmPHjiUgIOC2x0XE3JRzyjmR/E45p5wTkdynJkk+1apVK2bNmsXJkyeJjIy86RRJLy8vAC5evJjj9eTkZNLT0/Hy8nKcEx8fT8mSJR3nZA+kAEWKFAFg8uTJOc7Jdt999+U4/2ayv0dCQkKO77F//37sdjs1a9bMcf4XX3zBggULGDlyJM2aNaNw4cJcvnyZhQsX5jivU6dOdOrUiYsXLxIVFcXkyZN54403HM/W3u64iJiXcu4a5ZxI/qWcu0Y5JyK5SY/b5FP169fH19eX+fPns3v37puugn7ffffh7e3NqlWrcryevYp5/fr1qVevHlar1THVE66tjr5p0ybH13Xq1MHV1ZWLFy8SGBjo+OfQoUNMnjz5juqtXbs2Li4u/PTTTzleHzp0KDNmzLjh/F27dlGrVi0ef/xxChcuDMCGDRuAP+88DB48mH79+gHX7q4888wzPP3005w+ffqOjouIuSnnlHMi+Z1yTjknIrlPM0nyKScnJ1q2bMnMmTMJDAy8YWomgLOzM2+88QaffPIJxYoVIzg4mAMHDhAWFkbr1q2pWrUqAL1792batGm4ublRs2ZN5s6dy4ULFyhfvjxwbUpljx49GDFiBElJSdSuXZvY2FjGjRtHcHAwnp6et73zULx4cbp06cIXX3yBi4sLtWrV4ocffmD//v0MHTr0hvMDAwOZNm0aX3/9NVWrVuXXX39l8uTJWCwWrly5AsADDzzAe++9x9ixY2natClnzpxh7ty5tGzZ8o6Oi4i5KeeUcyL5nXJOOSciuU9NknysVatWfPPNNzcs5HW97t27U6hQIb766iu+/fZb/Pz86NWrl2NFcoC33nqLQoUK8c0335CcnEyrVq149tln2bp1q+Ocd955Bx8fHxYsWMDEiRPx8/PjhRde4I033rjjegcNGoS3tzcREREkJCRQpUoVpk2bRmBg4A3n9unTh/PnzzNp0iTS09OpWLEiH3zwAStWrGDnzp0AdOzYkdTUVCIiIggPD6dIkSI89thjhISE3NFxETE/5ZxyTiS/U84p50Qkd1ns2XPZREREREREREQKMK1JIiIiIiIiIiKCmiQiIiIiIiIiIoCaJCIiIiIiIiIigJokIiIiIiIiIiKAmiQiIiIiIiIiIoCaJCIiIiIiIiIigJokIiIiIiIiIiKAmiQiIiIiIiIiIgD8P/Ykwq89IEwhAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_model_selection_performances_plots(performances_df_dictionary, \n",
    "                                       performance_metrics_list=['AUC ROC', 'Average precision', 'Card Precision@100'])\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On this simulated dataset, XGBoost provides the highest performances in terms of Average Precision and CP@100, followed by random forest, logistic regression, and finally decision trees which have the lowest performances. The gap in terms of performance is most visible with the average precision metric. The performances of logistic regression, random forest, and XGBoost are very similar in terms of AUC ROC. \n",
    "\n",
    "Let us plot the total execution times of the model selection procedure for each model class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "execution_times=[execution_time_dt,execution_time_lr,\n",
    "                 execution_time_rf,execution_time_boosting]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "%%capture\n",
    "\n",
    "fig_model_selection_execution_times_for_each_model_class, ax = plt.subplots(1, 1, figsize=(5,4))\n",
    "\n",
    "model_classes=['Decision Tree','Logistic Regression','Random Forest','XGBoost']\n",
    "    \n",
    "# width of the bars\n",
    "barWidth = 0.3\n",
    "# The x position of bars\n",
    "r1 = np.arange(len(model_classes))\n",
    "    \n",
    "# Create execution times bars\n",
    "ax.bar(r1, execution_times[0:4], \n",
    "        width = barWidth, color = 'black', edgecolor = 'black', \n",
    "        capsize=7)\n",
    "\n",
    "ax.set_xticks(r1+barWidth/2)\n",
    "ax.set_xticklabels(model_classes, rotation = 45, ha=\"right\", fontsize=12)\n",
    "ax.set_title('Model selection execution times \\n for different model classes', fontsize=18)\n",
    "ax.set_xlabel(\"Model class\", fontsize=16)\n",
    "ax.set_ylabel(\"Execution times (s)\", fontsize=15)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fig_model_selection_execution_times_for_each_model_class"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The comparison in terms of execution times is mostly qualitative since they depend to a large extent on the number of parameter combinations that were considered in the model selection procedure. It however illustrates that model selection for complex models such as random forests or boosting usually requires more computational resources, since they require tuning a higher number of hyperparameters. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Random search\n",
    "\n",
    "Grid search is a widely used strategy for hyperparameter optimization. It however quickly becomes intractable when the number of hyperparameters is high since the number of parameter combinations grows exponentially with the number of parameters.\n",
    "\n",
    "An alternative to grid search is random search, where random combinations of parameters are assessed for a fixed number of combinations. Besides allowing to limit the number of tested parameter combinations, random combinations have been shown both empirically and theoretically to be more efficient for hyperparameter optimization than grid search {cite}`bergstra2012random`. \n",
    "\n",
    "The intuition for the efficiency of random search is illustrated in Fig. 3. Essentially, random search allows to more efficiently explore the space of important hyperparameters.   \n",
    "\n",
    "![alt text](images/random_search.png)\n",
    "<div align=\"center\">Fig. 3.  Grid and random search of nine parameter combinations, on a two-parameter space. Performance as a function of parameter's values is given in green (top - important parameter) and yellow (left, unimportant parameter). Grid search only assesses the important parameter for three different values, while random search explores the important parameter for nine different values (Figure taken from {cite}`bergstra2012random`).</div>\n",
    "\n",
    "The implementation of random search in `sklearn` can be performed by relying on `RandomizedSearchCV` instead of `GridSearchCV` in the prequential search. Let us modify the `prequential_grid_search` into a more generic `prequential_parameters_search` function, by adding three new parameters:\n",
    "\n",
    "* `type_search`: Either 'grid' for grid search, or 'random' for random search.\n",
    "* `n_iter`: Number of iterations (parameter combinations) for the random search.\n",
    "* `random_state`: Random state for reproducibility of the random search.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "def prequential_parameters_search(transactions_df, \n",
    "                            classifier, \n",
    "                            input_features, output_feature, \n",
    "                            parameters, scoring, \n",
    "                            start_date_training, \n",
    "                            n_folds=4,\n",
    "                            expe_type='Test',\n",
    "                            delta_train=7, \n",
    "                            delta_delay=7, \n",
    "                            delta_assessment=7,\n",
    "                            performance_metrics_list_grid=['roc_auc'],\n",
    "                            performance_metrics_list=['AUC ROC'],\n",
    "                            type_search='grid',\n",
    "                            n_iter=10,\n",
    "                            random_state=0,\n",
    "                            n_jobs=-1):\n",
    "    \n",
    "    estimators = [('scaler', sklearn.preprocessing.StandardScaler()), ('clf', classifier)]\n",
    "    pipe = sklearn.pipeline.Pipeline(estimators)\n",
    "    \n",
    "    prequential_split_indices=prequentialSplit(transactions_df,\n",
    "                                               start_date_training=start_date_training, \n",
    "                                               n_folds=n_folds, \n",
    "                                               delta_train=delta_train, \n",
    "                                               delta_delay=delta_delay, \n",
    "                                               delta_assessment=delta_assessment)\n",
    "    \n",
    "    parameters_search = None\n",
    "    \n",
    "    if type_search==\"grid\":\n",
    "        \n",
    "        parameters_search = sklearn.model_selection.GridSearchCV(pipe, parameters, scoring=scoring, cv=prequential_split_indices, \n",
    "                                         refit=False, n_jobs=n_jobs)\n",
    "    \n",
    "    if type_search==\"random\":\n",
    "        \n",
    "        parameters_search = sklearn.model_selection.RandomizedSearchCV(pipe, parameters, scoring=scoring, cv=prequential_split_indices, \n",
    "                                     refit=False, n_jobs=n_jobs,n_iter=n_iter,random_state=random_state)\n",
    "\n",
    "    \n",
    "    X=transactions_df[input_features]\n",
    "    y=transactions_df[output_feature]\n",
    "\n",
    "    parameters_search.fit(X, y)\n",
    "    \n",
    "    performances_df=pd.DataFrame()\n",
    "    \n",
    "    for i in range(len(performance_metrics_list_grid)):\n",
    "        performances_df[performance_metrics_list[i]+' '+expe_type]=parameters_search.cv_results_['mean_test_'+performance_metrics_list_grid[i]]\n",
    "        performances_df[performance_metrics_list[i]+' '+expe_type+' Std']=parameters_search.cv_results_['std_test_'+performance_metrics_list_grid[i]]\n",
    "\n",
    "    performances_df['Parameters']=parameters_search.cv_results_['params']\n",
    "    performances_df['Execution time']=parameters_search.cv_results_['mean_fit_time']\n",
    "    \n",
    "    return performances_df\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [],
   "source": [
    "def model_selection_wrapper(transactions_df, \n",
    "                            classifier, \n",
    "                            input_features, output_feature,\n",
    "                            parameters, \n",
    "                            scoring, \n",
    "                            start_date_training_for_valid,\n",
    "                            start_date_training_for_test,\n",
    "                            n_folds=4,\n",
    "                            delta_train=7, \n",
    "                            delta_delay=7, \n",
    "                            delta_assessment=7,\n",
    "                            performance_metrics_list_grid=['roc_auc'],\n",
    "                            performance_metrics_list=['AUC ROC'],\n",
    "                            type_search='grid',\n",
    "                            n_iter=10,\n",
    "                            random_state=0,\n",
    "                            n_jobs=-1):\n",
    "\n",
    "    # Get performances on the validation set using prequential validation\n",
    "    performances_df_validation=prequential_parameters_search(transactions_df, classifier, \n",
    "                            input_features, output_feature,\n",
    "                            parameters, scoring, \n",
    "                            start_date_training=start_date_training_for_valid,\n",
    "                            n_folds=n_folds,\n",
    "                            expe_type='Validation',\n",
    "                            delta_train=delta_train, \n",
    "                            delta_delay=delta_delay, \n",
    "                            delta_assessment=delta_assessment,\n",
    "                            performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                            performance_metrics_list=performance_metrics_list,\n",
    "                            type_search=type_search,\n",
    "                            n_iter=n_iter,\n",
    "                            random_state=random_state,\n",
    "                            n_jobs=n_jobs)\n",
    "    \n",
    "    # Get performances on the test set using prequential validation\n",
    "    performances_df_test=prequential_parameters_search(transactions_df, classifier, \n",
    "                            input_features, output_feature,\n",
    "                            parameters, scoring, \n",
    "                            start_date_training=start_date_training_for_test,\n",
    "                            n_folds=n_folds,\n",
    "                            expe_type='Test',\n",
    "                            delta_train=delta_train, \n",
    "                            delta_delay=delta_delay, \n",
    "                            delta_assessment=delta_assessment,\n",
    "                            performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                            performance_metrics_list=performance_metrics_list,\n",
    "                            type_search=type_search,\n",
    "                            n_iter=n_iter,\n",
    "                            random_state=random_state,\n",
    "                            n_jobs=n_jobs)\n",
    "    \n",
    "    # Bind the two resulting DataFrames\n",
    "    performances_df_validation.drop(columns=['Parameters','Execution time'], inplace=True)\n",
    "    performances_df=pd.concat([performances_df_test,performances_df_validation],axis=1)\n",
    "\n",
    "    # And return as a single DataFrame\n",
    "    return performances_df\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us rerun the model selection for boosting, but using random search, with 10 parameter combinations. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "classifier = xgboost.XGBClassifier()\n",
    "\n",
    "parameters = {'clf__max_depth':[3,6,9], 'clf__n_estimators':[25,50,100],'clf__learning_rate':[0.1,0.3],\n",
    "              'clf__random_state':[0],'clf__n_jobs':[1],'clf__n_verbosity':[0]}\n",
    "\n",
    "start_time=time.time()\n",
    "\n",
    "performances_df=model_selection_wrapper(transactions_df, classifier, \n",
    "                                        input_features, output_feature,\n",
    "                                        parameters, scoring, \n",
    "                                        start_date_training_for_valid,\n",
    "                                        start_date_training_for_test,\n",
    "                                        n_folds=n_folds,\n",
    "                                        delta_train=delta_train, \n",
    "                                        delta_delay=delta_delay, \n",
    "                                        delta_assessment=delta_assessment,\n",
    "                                        performance_metrics_list_grid=performance_metrics_list_grid,\n",
    "                                        performance_metrics_list=performance_metrics_list,\n",
    "                                        type_search='random',\n",
    "                                        n_iter=10,\n",
    "                                        random_state=0,\n",
    "                                        n_jobs=1)\n",
    "\n",
    "execution_time_boosting_random = time.time()-start_time\n",
    "\n",
    "parameters_dict=dict(performances_df['Parameters'])\n",
    "performances_df['Parameters summary']=[str(parameters_dict[i]['clf__n_estimators'])+\n",
    "                                   '/'+\n",
    "                                   str(parameters_dict[i]['clf__learning_rate'])+\n",
    "                                   '/'+\n",
    "                                   str(parameters_dict[i]['clf__max_depth'])\n",
    "                                   for i in range(len(parameters_dict))]\n",
    "\n",
    "# Rename to performances_df_xgboost_random for model performance comparison\n",
    "performances_df_xgboost_random=performances_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "tags": [
     "hide-cell"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC Test</th>\n",
       "      <th>AUC ROC Test Std</th>\n",
       "      <th>Average precision Test</th>\n",
       "      <th>Average precision Test Std</th>\n",
       "      <th>Card Precision@100 Test</th>\n",
       "      <th>Card Precision@100 Test Std</th>\n",
       "      <th>Parameters</th>\n",
       "      <th>Execution time</th>\n",
       "      <th>AUC ROC Validation</th>\n",
       "      <th>AUC ROC Validation Std</th>\n",
       "      <th>Average precision Validation</th>\n",
       "      <th>Average precision Validation Std</th>\n",
       "      <th>Card Precision@100 Validation</th>\n",
       "      <th>Card Precision@100 Validation Std</th>\n",
       "      <th>Parameters summary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.864766</td>\n",
       "      <td>0.006604</td>\n",
       "      <td>0.666130</td>\n",
       "      <td>0.012722</td>\n",
       "      <td>0.301429</td>\n",
       "      <td>0.013439</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>3.234625</td>\n",
       "      <td>0.863627</td>\n",
       "      <td>0.003203</td>\n",
       "      <td>0.651369</td>\n",
       "      <td>0.030279</td>\n",
       "      <td>0.280714</td>\n",
       "      <td>0.014932</td>\n",
       "      <td>50/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.852550</td>\n",
       "      <td>0.003171</td>\n",
       "      <td>0.656631</td>\n",
       "      <td>0.012632</td>\n",
       "      <td>0.302857</td>\n",
       "      <td>0.012164</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>4.030167</td>\n",
       "      <td>0.854345</td>\n",
       "      <td>0.008599</td>\n",
       "      <td>0.656910</td>\n",
       "      <td>0.023964</td>\n",
       "      <td>0.281429</td>\n",
       "      <td>0.012817</td>\n",
       "      <td>25/0.1/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.862519</td>\n",
       "      <td>0.007472</td>\n",
       "      <td>0.674149</td>\n",
       "      <td>0.007838</td>\n",
       "      <td>0.293929</td>\n",
       "      <td>0.012428</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>17.273730</td>\n",
       "      <td>0.879667</td>\n",
       "      <td>0.003782</td>\n",
       "      <td>0.700592</td>\n",
       "      <td>0.017885</td>\n",
       "      <td>0.285000</td>\n",
       "      <td>0.017394</td>\n",
       "      <td>100/0.1/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.871726</td>\n",
       "      <td>0.010990</td>\n",
       "      <td>0.686534</td>\n",
       "      <td>0.011086</td>\n",
       "      <td>0.302143</td>\n",
       "      <td>0.013458</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>3.859597</td>\n",
       "      <td>0.882839</td>\n",
       "      <td>0.008380</td>\n",
       "      <td>0.708226</td>\n",
       "      <td>0.020697</td>\n",
       "      <td>0.287500</td>\n",
       "      <td>0.016331</td>\n",
       "      <td>50/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.859138</td>\n",
       "      <td>0.004852</td>\n",
       "      <td>0.659458</td>\n",
       "      <td>0.012488</td>\n",
       "      <td>0.285357</td>\n",
       "      <td>0.010369</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>13.659157</td>\n",
       "      <td>0.878025</td>\n",
       "      <td>0.007150</td>\n",
       "      <td>0.691442</td>\n",
       "      <td>0.016375</td>\n",
       "      <td>0.279643</td>\n",
       "      <td>0.013567</td>\n",
       "      <td>100/0.3/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.871589</td>\n",
       "      <td>0.014202</td>\n",
       "      <td>0.686221</td>\n",
       "      <td>0.012026</td>\n",
       "      <td>0.301786</td>\n",
       "      <td>0.009603</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>6.731956</td>\n",
       "      <td>0.869654</td>\n",
       "      <td>0.002863</td>\n",
       "      <td>0.699780</td>\n",
       "      <td>0.016875</td>\n",
       "      <td>0.288214</td>\n",
       "      <td>0.016884</td>\n",
       "      <td>50/0.1/6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.870792</td>\n",
       "      <td>0.012352</td>\n",
       "      <td>0.694030</td>\n",
       "      <td>0.008394</td>\n",
       "      <td>0.303929</td>\n",
       "      <td>0.012305</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>7.344713</td>\n",
       "      <td>0.878438</td>\n",
       "      <td>0.009221</td>\n",
       "      <td>0.705235</td>\n",
       "      <td>0.019756</td>\n",
       "      <td>0.288214</td>\n",
       "      <td>0.015694</td>\n",
       "      <td>100/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.859114</td>\n",
       "      <td>0.003609</td>\n",
       "      <td>0.660666</td>\n",
       "      <td>0.008002</td>\n",
       "      <td>0.288214</td>\n",
       "      <td>0.008943</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>8.636219</td>\n",
       "      <td>0.876392</td>\n",
       "      <td>0.006354</td>\n",
       "      <td>0.692759</td>\n",
       "      <td>0.017801</td>\n",
       "      <td>0.280357</td>\n",
       "      <td>0.014441</td>\n",
       "      <td>50/0.3/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.860454</td>\n",
       "      <td>0.002511</td>\n",
       "      <td>0.658901</td>\n",
       "      <td>0.010897</td>\n",
       "      <td>0.286786</td>\n",
       "      <td>0.009056</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>18.037850</td>\n",
       "      <td>0.879577</td>\n",
       "      <td>0.006008</td>\n",
       "      <td>0.690895</td>\n",
       "      <td>0.016712</td>\n",
       "      <td>0.278571</td>\n",
       "      <td>0.015286</td>\n",
       "      <td>100/0.3/9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.870988</td>\n",
       "      <td>0.014197</td>\n",
       "      <td>0.678544</td>\n",
       "      <td>0.012501</td>\n",
       "      <td>0.303214</td>\n",
       "      <td>0.012592</td>\n",
       "      <td>{'clf__random_state': 0, 'clf__n_verbosity': 0...</td>\n",
       "      <td>1.766806</td>\n",
       "      <td>0.877231</td>\n",
       "      <td>0.006120</td>\n",
       "      <td>0.698490</td>\n",
       "      <td>0.022835</td>\n",
       "      <td>0.288929</td>\n",
       "      <td>0.015131</td>\n",
       "      <td>25/0.3/3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   AUC ROC Test  AUC ROC Test Std  Average precision Test  \\\n",
       "0      0.864766          0.006604                0.666130   \n",
       "1      0.852550          0.003171                0.656631   \n",
       "2      0.862519          0.007472                0.674149   \n",
       "3      0.871726          0.010990                0.686534   \n",
       "4      0.859138          0.004852                0.659458   \n",
       "5      0.871589          0.014202                0.686221   \n",
       "6      0.870792          0.012352                0.694030   \n",
       "7      0.859114          0.003609                0.660666   \n",
       "8      0.860454          0.002511                0.658901   \n",
       "9      0.870988          0.014197                0.678544   \n",
       "\n",
       "   Average precision Test Std  Card Precision@100 Test  \\\n",
       "0                    0.012722                 0.301429   \n",
       "1                    0.012632                 0.302857   \n",
       "2                    0.007838                 0.293929   \n",
       "3                    0.011086                 0.302143   \n",
       "4                    0.012488                 0.285357   \n",
       "5                    0.012026                 0.301786   \n",
       "6                    0.008394                 0.303929   \n",
       "7                    0.008002                 0.288214   \n",
       "8                    0.010897                 0.286786   \n",
       "9                    0.012501                 0.303214   \n",
       "\n",
       "   Card Precision@100 Test Std  \\\n",
       "0                     0.013439   \n",
       "1                     0.012164   \n",
       "2                     0.012428   \n",
       "3                     0.013458   \n",
       "4                     0.010369   \n",
       "5                     0.009603   \n",
       "6                     0.012305   \n",
       "7                     0.008943   \n",
       "8                     0.009056   \n",
       "9                     0.012592   \n",
       "\n",
       "                                          Parameters  Execution time  \\\n",
       "0  {'clf__random_state': 0, 'clf__n_verbosity': 0...        3.234625   \n",
       "1  {'clf__random_state': 0, 'clf__n_verbosity': 0...        4.030167   \n",
       "2  {'clf__random_state': 0, 'clf__n_verbosity': 0...       17.273730   \n",
       "3  {'clf__random_state': 0, 'clf__n_verbosity': 0...        3.859597   \n",
       "4  {'clf__random_state': 0, 'clf__n_verbosity': 0...       13.659157   \n",
       "5  {'clf__random_state': 0, 'clf__n_verbosity': 0...        6.731956   \n",
       "6  {'clf__random_state': 0, 'clf__n_verbosity': 0...        7.344713   \n",
       "7  {'clf__random_state': 0, 'clf__n_verbosity': 0...        8.636219   \n",
       "8  {'clf__random_state': 0, 'clf__n_verbosity': 0...       18.037850   \n",
       "9  {'clf__random_state': 0, 'clf__n_verbosity': 0...        1.766806   \n",
       "\n",
       "   AUC ROC Validation  AUC ROC Validation Std  Average precision Validation  \\\n",
       "0            0.863627                0.003203                      0.651369   \n",
       "1            0.854345                0.008599                      0.656910   \n",
       "2            0.879667                0.003782                      0.700592   \n",
       "3            0.882839                0.008380                      0.708226   \n",
       "4            0.878025                0.007150                      0.691442   \n",
       "5            0.869654                0.002863                      0.699780   \n",
       "6            0.878438                0.009221                      0.705235   \n",
       "7            0.876392                0.006354                      0.692759   \n",
       "8            0.879577                0.006008                      0.690895   \n",
       "9            0.877231                0.006120                      0.698490   \n",
       "\n",
       "   Average precision Validation Std  Card Precision@100 Validation  \\\n",
       "0                          0.030279                       0.280714   \n",
       "1                          0.023964                       0.281429   \n",
       "2                          0.017885                       0.285000   \n",
       "3                          0.020697                       0.287500   \n",
       "4                          0.016375                       0.279643   \n",
       "5                          0.016875                       0.288214   \n",
       "6                          0.019756                       0.288214   \n",
       "7                          0.017801                       0.280357   \n",
       "8                          0.016712                       0.278571   \n",
       "9                          0.022835                       0.288929   \n",
       "\n",
       "   Card Precision@100 Validation Std Parameters summary  \n",
       "0                           0.014932           50/0.1/3  \n",
       "1                           0.012817           25/0.1/9  \n",
       "2                           0.017394          100/0.1/9  \n",
       "3                           0.016331           50/0.3/3  \n",
       "4                           0.013567          100/0.3/6  \n",
       "5                           0.016884           50/0.1/6  \n",
       "6                           0.015694          100/0.1/3  \n",
       "7                           0.014441           50/0.3/9  \n",
       "8                           0.015286          100/0.3/9  \n",
       "9                           0.015131           25/0.3/3  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "performances_df_xgboost_random"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `get_summary_performances` function gives the summary of the best parameters and corresponding performances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC</th>\n",
       "      <th>Average precision</th>\n",
       "      <th>Card Precision@100</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Best estimated parameters</th>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>25/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Validation performance</th>\n",
       "      <td>0.883+/-0.01</td>\n",
       "      <td>0.708+/-0.02</td>\n",
       "      <td>0.289+/-0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Test performance</th>\n",
       "      <td>0.872+/-0.01</td>\n",
       "      <td>0.687+/-0.01</td>\n",
       "      <td>0.303+/-0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal parameters</th>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>100/0.1/3</td>\n",
       "      <td>100/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal test performance</th>\n",
       "      <td>0.872+/-0.01</td>\n",
       "      <td>0.694+/-0.01</td>\n",
       "      <td>0.304+/-0.01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                AUC ROC Average precision Card Precision@100\n",
       "Best estimated parameters      50/0.3/3          50/0.3/3           25/0.3/3\n",
       "Validation performance     0.883+/-0.01      0.708+/-0.02       0.289+/-0.02\n",
       "Test performance           0.872+/-0.01      0.687+/-0.01       0.303+/-0.01\n",
       "Optimal parameters             50/0.3/3         100/0.1/3          100/0.1/3\n",
       "Optimal test performance   0.872+/-0.01      0.694+/-0.01       0.304+/-0.01"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summary_performances_xgboost_random=get_summary_performances(performances_df_xgboost_random, parameter_column_name=\"Parameters summary\")\n",
    "summary_performances_xgboost_random"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The performances are essentially the same as those obtained with the grid search."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AUC ROC</th>\n",
       "      <th>Average precision</th>\n",
       "      <th>Card Precision@100</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Best estimated parameters</th>\n",
       "      <td>100/0.3/3</td>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>25/0.3/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Validation performance</th>\n",
       "      <td>0.887+/-0.01</td>\n",
       "      <td>0.708+/-0.02</td>\n",
       "      <td>0.289+/-0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Test performance</th>\n",
       "      <td>0.869+/-0.01</td>\n",
       "      <td>0.687+/-0.01</td>\n",
       "      <td>0.303+/-0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal parameters</th>\n",
       "      <td>50/0.3/3</td>\n",
       "      <td>100/0.1/3</td>\n",
       "      <td>100/0.1/3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Optimal test performance</th>\n",
       "      <td>0.872+/-0.01</td>\n",
       "      <td>0.694+/-0.01</td>\n",
       "      <td>0.304+/-0.01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                AUC ROC Average precision Card Precision@100\n",
       "Best estimated parameters     100/0.3/3          50/0.3/3           25/0.3/3\n",
       "Validation performance     0.887+/-0.01      0.708+/-0.02       0.289+/-0.02\n",
       "Test performance           0.869+/-0.01      0.687+/-0.01       0.303+/-0.01\n",
       "Optimal parameters             50/0.3/3         100/0.1/3          100/0.1/3\n",
       "Optimal test performance   0.872+/-0.01      0.694+/-0.01       0.304+/-0.01"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Performances with grid search\n",
    "summary_performances_xgboost"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The execution time was however significantly faster."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total execution time for XGBoost with grid search: 1251.2s\n",
      "Total execution time for XGBoost with random search: 690.32s\n"
     ]
    }
   ],
   "source": [
    "print(\"Total execution time for XGBoost with grid search: \"+str(round(execution_time_boosting,2))+\"s\")\n",
    "print(\"Total execution time for XGBoost with random search: \"+str(round(execution_time_boosting_random,2))+\"s\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Saving of results\n",
    "\n",
    "Let us finally save the performance results and execution times."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "performances_df_dictionary={\n",
    "    \"Decision Tree\": performances_df_dt,\n",
    "    \"Logistic Regression\": performances_df_lr,\n",
    "    \"Random Forest\": performances_df_rf,\n",
    "    \"XGBoost\": performances_df_xgboost,\n",
    "    \"XGBoost Random\": performances_df_xgboost_random\n",
    "}\n",
    "\n",
    "execution_times=[execution_time_dt,\n",
    "                 execution_time_lr,\n",
    "                 execution_time_rf,\n",
    "                 execution_time_boosting,\n",
    "                 execution_time_boosting_random]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Both data structures are saved as a Pickle file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "filehandler = open('performances_model_selection.pkl', 'wb') \n",
    "pickle.dump((performances_df_dictionary, execution_times), filehandler)\n",
    "filehandler.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
